区切り文字の切り出しをするには


あけみ  2006-05-28 00:10:10  No: 21869

教えてください。

str:string;
str:='123;456;789;0;12;11111;222222222;333333333';
;区切りデータです。

123
456
789
0
12
11111
222222222
333333333

上記のように編集し参照したいのですが
TStringListの使用法を教えてください。
よろしくお願いいたします。


igy  2006-05-28 00:42:18  No: 21870

>上記のように編集し参照したいのですが
>TStringListの使用法を教えてください。
>よろしくお願いいたします。

方法1
・文字列を1文字ずつ検索し、“;”の場所が見つかったら、検索を開始した位置から
 “;”の場所が見つかった位置の手前までの文字列を、StringListに追加する。
・文字列の最後まで↑を繰り返す。

方法2
procedure TForm1.Button9Click(Sender: TObject);
var
    sl: TStringList;
    wk: String;
    str: String;
begin
    str:='123;456;789;0;12;11111;222222222;333333333';

    sl := TStringList.Create;
    try
        wk := str;
        wk := stringReplace(wk, '"', '""', [rfReplaceAll]);
        wk := stringReplace(wk, ';', '","', [rfReplaceAll]);
        wk := '"' + wk + '"';
        sl.CommaText := wk;
    finally
        sl.Free;
    end;
end;


灼熱  2006-05-28 00:47:36  No: 21871

こんにちわ
StringReplace関数で、セミコロンを
カンマに置換し、
[TStringList].CommaText := [String];
で挿入すればどうでしょうか?
で、
[TStringList].Countなどを
用いればいろいろ操作ができると思います。


風来坊  2006-05-28 00:54:37  No: 21872

CommaText よりも
Delimiter := ';';
DelimitedText := '123;456;789;0;12;11111;222222222;333333333';
の方がスマートかと?


ん?  2006-05-28 01:58:41  No: 21873

> DelimitedText := '123;456;789;0;12;11111;222222222;333333333';
バージョンが書いてないのですが、DelimitedTextは、D6から追加されたようです。


あけみ  2006-05-28 02:24:51  No: 21874

ありがとうございます。

VER6です。

Delimiter := ';';
DelimitedText := '123;456;789;0;12;11111;222222222;333333333';
でうまくできました。


あけみ  2006-05-28 02:40:44  No: 21875

追伸

[TStringList].Count/5

とか計算したいのですが...

extendedとintegerの型変換はできますか?


ウマー  2006-05-28 06:02:45  No: 21876

算術演算子
計算ルーチン

少しは調べなさい


Fusa  2006-05-28 09:09:21  No: 21877

StringList1.Count div 5
でいいかな?


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

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






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