2017-07-29 19 views
0
PROCEDURE TForm1.Button1Click(Sender: TObject); 
VAR count:Integer; 
    text1:String; 
BEGIN 
    text1 := 'Line1'+#13#10+'® Line2'+#13#10+'Line3'; 

    FOR count := 1 TO Length(text1) DO 
    ShowMessage(Copy(text1,count,4)); 
END; 

so ... の文字コードunicodeテキストは約4桁です。
可用性はそれほど気にならないので、as it isのものはよりシンプルになりますが、
という意味は複雑になります。[?]文字コード - 方法:copyコマンドを使用します。

次に、このすべての資料のドキュメントについては、
は、文字列の最初の識別のためだけに文字コードをコピーする方法を知ることです。 #のみを取得するためにcopyコマンドを使用すると、'string'と表示されません。

文字列'Line1';コード#13#10; ユニコードのために徹底的にサポートされ、前記れているコピーコマンドを使用する方法ここでは、その後

質問について::
ある[?]
[?]その例からそれが®のようなシンボルでメッセージを表示して文字コードを取得するのに最適です。
各コードから最初#を返すためにコピー( text1,1,1 )を行いながらを意味します[?]。


EDIT:ええ...機能の長さは、追加文字を数えます。


EDIT2:使用'|'+copy(text1,1,1)+'|'が、それはその何®に遭遇したことにより、完全に空白のメッセージを返すことが起こりますか?


これは、一部のASCIIの制限から からの復帰RTL ?を避けるために、関数を作成しようとしています。
他の ではサポートされていません。

+0

私はあなたの質問を読んでいると、それが英語の単語と英語のテキストのように見えますが、私はあなたが求めているものを絶対にないアイデアを持っていません。あなたは知っていることを知るために、組み込みのヘルプや[Delphi docwiki](http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Copy)を読むことができます。 –

+0

「ユニコードテキストの文字コードは約4桁です」とはどういう意味ですか?あなたは "+ U1234"という意味ですか? –

+0

は、[[?]疑問符;コードが特殊文字となるものを読み込めなかったことを意味します。利用可能な情報から、コードサンプルから提示され、後で論理を調整することによって、その上のシンボルに#0174というコードが付いていることが分かりました(例)。 1,1からのコピーコマンドがそのような文字では機能しないことを意味しています(ドキュメンテーションはこれまでのように動作するようにサポートされています)。レンダリングされた文字の代わりにそのようなコード#0174でそれを読むこと。 – H3sDW11e

答えて

0

Lazarusはデフォルトで符号化を使用しているため、バイト単位の文字長は可変である可能性があります(ASCII文字の場合は1バイト、特殊文字の場合は4バイトです)。

例:

program project1; 

{$mode objfpc}{$H+} 

uses 
    LazUnicode, LazUTF8; 

var 
    //   123456789
    s: string = 'Παράδειγμα 123'; 
    c: string; 

begin 
    Writeln(Length(s));  // 24, length in bytes (10 2-bytes chars + 4 ASCII chars) 
    Writeln(UTF8Length(s)); // 14, length in chars (code poits) 

    // To enumerate characters in string, LazUnicode unit should be in "uses" clause 
    // "c" variable declared as "string" because it can hold more then one bytes 
    for c in s do 
     Writeln(c); 

    // Copy code point(s) (not byte(s)) 
    Writeln(UTF8Copy(s,1,1)); 
end. 

もっと読み:Unicode Support in Lazarus

関連する問題