文字列をアスキーコードに変換するには?

解決


おーいお茶  2005-05-14 02:14:09  No: 14778  IP: [192.*.*.*]

文章の文字を一字ずつアスキーコードに変換したいのですがどうしたらいいのでしょうか?VBだとアスキーコードから文字に変換できたはずなんですけどデルファイでは無理なのでしょうか?
アスキーコードでなくてもなんとかして文字列(数値ではなくてかなや英字など)を数値に置き換えることができるのでしょうか?

編集    削除
 2005-05-14 03:18:20  No: 14779  IP: [192.*.*.*]

基本型と型キャストを勉強しましょう。

s:string = 'abcde'
s[1]=a
Byte(s[1])

編集    削除
 2005-05-14 03:26:25  No: 14780  IP: [192.*.*.*]

Memo1.Lines.Add(  'a' );
  Memo1.Lines.Add(  Char(97) );
  Memo1.Lines.Add(  #97 );
  Memo1.Lines.Add(  #$61 );

編集    削除
 2005-05-14 03:27:40  No: 14781  IP: [192.*.*.*]

Memo1.Lines.Add(Format('%d[%.2x]',[Byte('a'),Byte('a')]));

編集    削除
kkk  2005-05-14 04:57:25  No: 14782  IP: [192.*.*.*]

Ordを使用しましょう。
Helpより
S := 'The ASCII code for "c" is ' + IntToStr(Ord('c')) +  ' decimal';
 MessageDlg(S, mtInformation, [mbOk], 0, mbOK);

編集    削除
 2005-05-14 06:20:35  No: 14783  IP: [192.*.*.*]

string型の中の1文字はCharと覚えましょう。
Widestring型の中の1文字はWCharと覚えましょう。

対応表
文字扱い  数字扱い
 Char      Byte     1バイト   
 WChar     Word     2バイト

編集    削除
おーいお茶  2005-05-14 20:45:31  No: 14784  IP: [192.*.*.*]

なるほどよくわかりました。ゑ様、kkk様、本当に有難うございました。

編集    削除
pascal  2005-05-15 01:29:46  No: 14785  IP: [192.*.*.*]

c := Byte(s[1]);
s[1] := Char(97);
のような書き方(キャスト)でも望む結果は出てきますが
Pascal/Delphiでは
c := Ord(s[1]);
s[1] := chr(c);
という書き方が一般的です。
参考)
http://www.borland.co.jp/qanda/delphi/d0002815.html

編集    削除