Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Text Datie mit Programm erstellen (https://www.delphipraxis.net/94954-text-datie-mit-programm-erstellen.html)

Bassel 28. Jun 2007 14:40


Text Datie mit Programm erstellen
 
Hallo

ich möchte ein Programm schreiben, das eine Datei auf dem
Destop erstellt sie iwie bennent und iwas darein schreibt.
Ich hab diese noch nie gemacht, deshalb kenne ich keine Syntax
oder Vorgehensweise mit Dateiumgang. Kann mir jemand helfen???

Danke im vorraus


Bassel

Bernhard Geyer 28. Jun 2007 14:52

Re: Text Datie mit Programm erstellen
 
Schau dir mal das <Demos>\RichEdit-Demo an.

Da wird dir gezeigt wie du mit Open/Save-Dialogen arbeitest um Daten zu laden/speichern.

shmia 28. Jun 2007 14:52

Re: Text Datie mit Programm erstellen
 
Du nimmst einfach die folgenden Hilfsfunktionen und schreibst dann:
Delphi-Quellcode:
StringToFile('C:\test.txt', 'Das ist der Inhalt der Datei'#13#10);
Und hier die Hilfsfunktionen:
Delphi-Quellcode:
function FileToString(const FileName: string): AnsiString;
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
  try
    Len := fs.Size;
    SetLength(Result, Len);
    if Len > 0 then
      fs.ReadBuffer(Result[1], Len);
  finally
    fs.Free;
  end;
end;

procedure StringToFile(const FileName: string; const Contents: AnsiString);
var
  fs: TFileStream;
  Len: Integer;
begin
  fs := TFileStream.Create(FileName, fmCreate);
  try
    Len := Length(Contents);
    if Len > 0 then
      fs.WriteBuffer(Contents[1], Len);
  finally
    fs.Free;
  end;
end;

Alexander Roth 28. Jun 2007 14:57

Re: Text Datie mit Programm erstellen
 
Alternativ ohne Streams geht es auch mit den Proceduren die ich mir mal geschrieben habe und seitdem benutze:

Delphi-Quellcode:
{-----------------------------------------------------------------------------
  Description: Schreibt in eine TXT rein
  Procedure:   intxtschreiben
  Arguments:   text:string; pfad:string=''; vorherloschen:boolean=true
  Result:      None
  Detailed description:
-----------------------------------------------------------------------------}
procedure intxtschreiben(text:string; pfad:string=''; const endung:string='.txt'; vorherloschen:boolean=true);
var txt:textfile;
begin
  if pfad='' then
    pfad:=ExtractFilePath(Application.ExeName)+dateToStr(now)+' '+inttostr(hourof(now))+'h '+inttostr(minuteof(now))+'m '+inttostr(secondof(now))+'s '+endung
  else
    DelDubbleExtension(pfad,endung);

  try
    try
      assignfile(txt,pfad);
      if (fileexists(pfad))and(not vorherloschen) then
        append(txt)
      else
        rewrite(txt);
      writeln(txt,text);
    finally
    closefile(txt);
    end;
  except
    showmessage('Es konnte keine Datei erstellt werden!'+chr(13)+
          'Falls Sie das Programm von CD Starten kopieren Sie bitte die *.exe auf ihre Festplatte und starten Sie erneut!');
  end;
end;




{-----------------------------------------------------------------------------
  Description:
  Procedure:   readtxt
  Arguments:   path:string
  Result:      string
  Detailed description:
-----------------------------------------------------------------------------}
function readtxt(path:string):string;
var txt:textfile;
    s:string;
begin
  result:='';
  if fileexists(path) then
    try
      assignfile(txt,path);
      reset(txt);
      repeat
        readln(txt,s);
        result:=result+s+#13+#10;
      until eof(txt);
    finally
      closefile(txt);
    end;
end;
Gruß Alexander

TeronG 28. Jun 2007 15:32

Re: Text Datie mit Programm erstellen
 
Textdateien würde ich einfach mit ner TstringList handeln.

die hat .SaveToFile, .LoadFromFile,
Text komplette .Text,
einzelne zeile .Line[x],
Zeile hinzufügen .Add('xyz'),
uvm (siehe OH ^^)

Auswahl der Datei beim Speichern/Laden siehe Bernhard Geyer: "mit Open/Save-Dialogen "


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz