プログラミングの基礎を知らない初心者です。
フォームには
memoとstringgridを用意しました。
memoに表示された文字列(数十行の改行)には固定長のデータなのですが、
このデータをstringgridに文字数を揃えてセル分けしたいのです。
例文)AAAAAA1111120100727bbbbb
上記を、AAAAAA 11111 20100727 bbbbb と表示。
レイアウトは 6文字、5文字、8文字(日付)、5文字で区切りたい。
文字数の指定だと例えば
varに
A:string[5];
なんて標記になるのか?
とも考えましたが、これから後が思いつかないのです。
で?Aはどうするの?と・・・
サンプルでも、参考URLでも構いません。
どこのWEBでも
「文字数を調べる」と「memoからstringgridへコピーする」
は有っても、
「memoからstringgridへ文字数をレイアウトどおりに区切って表示する」
というサンプルが無いのです。
少しでもお教え戴ければ、自分で理解し、解釈します!
文章、伝わりにくいかと思いますが、
どうぞ宜しくご教示くださいますよう、お願いいたします。
簡単に書くとこんなことなのかな?
for i := 0 to Memo1.Lines.Count -1
StringGrid1.Cell[1, i+1] := Copy(Memo1.Lines[i], 1, 6);
StringGrid1.Cell[2, i+1] := Copy(Memo1.Lines[i], 7, 5);
StringGrid1.Cell[3, i+1] := Copy(Memo1.Lines[i], 12, 8);
StringGrid1.Cell[4, i+1] := Copy(Memo1.Lines[i], 20, 5);
end;
こんな感じ?
procedure TForm1.Button1Click(Sender: TObject);
var
I,J: Integer;
S: String;
begin
for I:=0 to Memo1.Lines.Count -1 do
begin
S := Memo1.Lines[I];
StringGrid1.Cells[1,I+1] := Copy(S, 1,6);
StringGrid1.Cells[2,I+1] := Copy(S, 7,5);
StringGrid1.Cells[3,I+1] := Copy(S,12,8);
StringGrid1.Cells[4,I+1] := Copy(S,20,5);
end;
end;
作ってる間に書き込まれてた・・・・
ぽむぽむさま、KHE00221さま、早々に有難う御座います!
ちょっと、自宅で頑張ってきます!
理解もしてきます!
結果と解決チェックはまたご報告させて頂きます。
解決チェックが遅くなり、すみません。
お二人のお陰で
思ったとおりの結果を得ることが出来ました。
また、コードも理解出来ました。
(なんとなくですが・・・これからもっと勉強します!^^;)
本当に有難う御座いました。
ツイート | ![]() |