テキストに文字列を書き込むには?

解決


ここなな  2006-10-27 09:32:59  No: 23646

テキストに文字列を書き込むには?
procedure TForm1.WriteTxt(Kakikomi: string);
var
  TextOpen: TextFile;
  NewFileName: string;
begin
  NewFileName := ExtractFileName(Application.ExeName);
  AssignFile(TextOpen, NewFileName);
  Rewrite(TextOpen);
  try
    WriteLn(TextOpen, Kakikomi);
  finally
    CloseFile(TextOpen);
  end;
end;
こういった形でテキストに文字列を書き込むには??


いみふめ  2006-10-27 09:53:37  No: 23647

何をしたいのかイマイチ意味不明。
テキストって何??


めるめる  2006-10-27 21:42:18  No: 23648

私はこのようにしています。
ご参考まで。

procedure TForm1.WriteTxt(Kakikomi: string);
var
  TextOpen: TextFile;
  NewFileName: string;
begin
  NewFileName := '\user.dat';
  AssignFile( TextOpen, ExtractFileDir(ParamStr(0)) + NewFileName );

  {$I-}
    Rewrite(TextOpen);
  {$I+}

    case IOResult of
      NO_ERROR:
        begin
          Writeln(F, Kakikomi);
        end;
      ERROR_FILE_NOT_FOUND:
        begin
          ;
        end;
      else
        begin
          ;
        end;
    end;

    closeFile( TextOpen );
end;


めるめる  2006-10-27 21:45:18  No: 23649

一カ所修正ミスがありました。

procedure TForm1.WriteTxt(Kakikomi: string);
var
  TextOpen: TextFile;
  NewFileName: string;
begin
  NewFileName := '\user.dat';
  AssignFile( TextOpen, ExtractFileDir(ParamStr(0)) + NewFileName );

  {$I-}
    Rewrite(TextOpen);
  {$I+}

    case IOResult of
      NO_ERROR:
        begin
          Writeln(TextOpen, Kakikomi);  ←  ここが間違っていました。
        end;
      ERROR_FILE_NOT_FOUND:
        begin
          ;
        end;
      else
        begin
          ;
        end;
    end;

    closeFile( TextOpen );
end;


めるめる  2006-10-27 21:51:58  No: 23650

度々すいません。
ソースに記述ミスがあり、バグが存在しました。

procedure TForm1.WriteTxt(Kakikomi: string);
var
  TextOpen: TextFile;
  NewFileName: string;
begin
  NewFileName := '\user.dat';
  AssignFile( TextOpen, ExtractFileDir(ParamStr(0)) + NewFileName );

  {$I-}
    Rewrite(TextOpen);
  {$I+}

    case IOResult of
      NO_ERROR:
        begin
          Writeln(F, Kakikomi);
          closeFile( TextOpen );  ←  ここに追加記述です。
        end;
      ERROR_FILE_NOT_FOUND:
        begin
          ;
        end;
      else
        begin
          ;
        end;
    end;

  //closeFile( TextOpen );
  // ↑ ファイルが存在しなかった場合に、
  //    存在しないファイルをクローズしようとして
  //    エラーになりました。
  //    ごめんなさい。
end;


ここかな  2006-11-18 19:14:20  No: 23651

ありがとうございました。無事解決しました。
いまいち意味不明なことを書いていて申し訳ありませんでした。


HOta  2006-11-18 19:57:11  No: 23652

TStringListを使った場合。

var
  StringList1:TStringList;
  NewFileName: string;
begin
  StringList1 := TStringList.Create;         //Create
  try
    NewFileName := 'ファイル名';
    if FileExists(NewFileName) then          //書き込むファイルがあった場合
      StringList1.LoadFromFile(NewFileName); //元のファイルを読み込む
    StringList1.Add(Kakikomi);               //文字列を追加
    StringList1.SaveToFile(NewFileName);     //ファイルに書き出す
  finally
    Freeandnil(StringList1);                 //解放
  end;
end;


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

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






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