いつも勉強させてもらっております。
1 2 3 4
5 6 7 8
9 10 11 12
といった数値が記載されているテキストファイルを
TStringListを使って列毎のデータを読み込みたいとおもっております。
過去ログで勉強させてもらったところ、
var
zenbu,Line:TStringList;
zenbuに上記数値をすべて読み込み
Line.CommaText:= zenbu(0);
という感じで、1 2 3 4 といったように
行方向の読み込みはできたのですが、列方向の
1 5 9 をTStringListに読み込むのはどうすればよろしいのでしょうか?
ヘルプなどを見ながら、テキストを
1 5 9
2 6 10
3 7 11
4 8 12
と書き換える方法なども検討しましたが、
すべて上手くできなかったため相談させていただきました。
方法はいくつかあると思うのですが
少々面倒かもしれませんね。
こちらを使ってみてください。
http://delfusa.main.jp/delfusafloor/opensource/delfusalibrary/20070828160200/WordDecompose/WordDecompose.pas.txt
function WordGet(const Delimiters, S: WideString; WordIndex: Integer;
DecomposeMode: TDecomposeMode): WideString;
各行毎にDelimitersにスペースを指定して
WordIndexに列を指定すれば取得出来ます。
DecomposeModeにはdmDelimiterExactlyを指定するといいでしょう。
例えばこんな感じ。
for i:=0 to zenbu.Count-1 do
begin
Memo1.Lines.Add( WordGet(' ', zenbu[i], 1, dmDelimiterExactly) );
end;
Fusaさんありがとうございました。
また、ひとつ勉強になりました。