EditからCSVへの追記


CAL  2005-06-08 03:52:20  No: 15428

Delphi6で複数のEditから入力した値を、項目別に既存のCSVファイルに追記させるにはどうしたらよいのでしょうか?


ん?  2005-06-08 04:00:25  No: 15429

こういうことか?

AssignFile(F, てきとうなファイル名);
Reset(F);
Writeln(F, てきとうなCSVデータ1行分);    
CloseFile(F);

「てきとうなCSVデータ1行分」=Edit1.Text + ',' + Edit2.Text 
ってなとこかな〜?


ん?  2005-06-08 04:01:51  No: 15430

他には、TStringListを使う。
以下参照
https://www.petitmonte.com/bbs/answers?question_id=1541


append  2005-06-08 07:22:09  No: 15431

ヘルプより

Append 手続きは,既存ファイルの最後にテキストを追加できるようにします。

var

  f: TextFile;
begin
  if OpenDialog1.Execute then
  begin                    { テキストファイルを開く }
    AssignFile(f, OpenDialog1.FileName);
    Append(f);
    Writeln(f, 'I am appending some stuff to the end of the file.'); 
    { ファイルを閉じる前に,Flush するコードをここに記述する }
    Flush(f);  { テキストが実際にファイルに書き込まれたことを確かめる }

    CloseFile(f);
  end;
end;


にしの  2005-06-08 07:27:45  No: 15432

Appendでは項目別には追記できませんね。
行単位の追記はできても。
TStringListを使うのが吉かと。


ksk  2005-06-08 08:23:18  No: 15433

csvは1行データではないので、
phpのgetcsvなどの関数をぱくってくるのがいいかと思います


append  2005-06-08 08:23:20  No: 15434

> Delphi6で複数のEditから入力した値を

だから、CSV の一行分なのでは?


append  2005-06-08 08:25:34  No: 15435

> csvは1行データではないので、

そうなんですか? 改行がデータ区切りでない場合があるのですね?


ksk  2005-06-08 09:23:05  No: 15436

csvは、
""でくくられたデータには改行を入れることができます。

"","
 
 ",
は  一個分になります。

きちんとしたcsvに対応するのが面倒なら
1レコードに改行データがないなら、
TStringListでいいと思います
もし改行データがある場合は、改行を他の文字に置換させるといいです。

で、1行1レコード前提なら
面倒はさけて、
StringList1    データ全体
StringList2    1レコード用
を二つ作ります

片方をデータ行読みとりよう。StringList1
もう片方のStringList2
StringList2.Delimiter := ',';  にして
StringList2.DelimitedText := StringList1.strings[番号]で
  StringList2.strings[番号]  で  そちらをデータ分解用にします。

とすると簡単にあつかえます。

csvなら何でも読み込みたいのなら
やっぱり、phpのソースコードからぱっくってくるのがいいかも

自分のデータだけなら、
そこまでしなくてもいいでしょう


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

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






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