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

解決


おーいお茶  2005-05-14 02:14:09  No: 14778

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


  2005-05-14 03:18:20  No: 14779

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

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


  2005-05-14 03:26:25  No: 14780

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

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


kkk  2005-05-14 04:57:25  No: 14782

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

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

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


おーいお茶  2005-05-14 20:45:31  No: 14784

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


pascal  2005-05-15 01:29:46  No: 14785

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加