txt Files bearbeiten

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.
Antworten
Niel5er
Beiträge: 3
Registriert: Fr 31. Jul 2015, 12:48

txt Files bearbeiten

Beitrag von Niel5er »

Kann mal irgendwie eine schon vorhandene .txt Datei weiterschreiben?
mit rewrite wird ja alles gelöscht...oder?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: txt Files bearbeiten

Beitrag von Michl »

Mit Append kann man eine TextDatei zum Anhängen weiterer Textzeilen öffnen:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var
  f: TextFile;
begin
  AssignFile(f, 'test.txt');
  Append(f);
  Writeln(f, 'TestZeile1');
  Writeln(f, 'TestZeile2');
  Writeln(f, 'TestZeile3');
  CloseFile(f);
end

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Niel5er
Beiträge: 3
Registriert: Fr 31. Jul 2015, 12:48

Re: txt Files bearbeiten

Beitrag von Niel5er »

und wie kann man genau eine zeile auslesen?

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: txt Files bearbeiten

Beitrag von Michl »

Niel5er hat geschrieben:und wie kann man genau eine zeile auslesen?
Mit Readln wird genau eine Textzeile ausgelesen. Aber was versuchst du denn umzusetzen? Evtl. gibt es bessere Möglichkeiten, als Textdateien (ini, xml etc.)?!

Ansonsten kannst du mal auf der Seite http://wiki.freepascal.org/File_Handling_In_Pascal nach "Reading a textfile" schauen. Seek und Konsorten funktionieren nicht bei Textdateien, sondern nur bei typisierten Dateien (z.B. eine typisierte Datei mit ShortStrings).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Niel5er
Beiträge: 3
Registriert: Fr 31. Jul 2015, 12:48

Re: txt Files bearbeiten

Beitrag von Niel5er »

ich versuche ein programmchen zur vokabelabfrage zu schreiben bei dem zufällig eine zeile herrausgesucht wird

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: txt Files bearbeiten

Beitrag von Michl »

Dann würde ich die Daten zur Laufzeit im Speicher halten und nicht aus einer Datei auslesen (z.B. in einem Array) z.B.:

Code: Alles auswählen

type
  TWort = record
    Deutsch: String;
    Saechsisch: String;
  end;
 
  TForm1 = class(TForm)
...
  private
    Woerter: array of TWort;
  end

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

gocher
Beiträge: 298
Registriert: Di 23. Nov 2010, 23:41
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk
CPU-Target: 32Bit/64Bit
Wohnort: Geldern
Kontaktdaten:

Re: txt Files bearbeiten

Beitrag von gocher »

Ich würde die Text-Datei in eine StringList laden und mit Random eine Zeile auslesen.

Code: Alles auswählen

 
var
  slZeilen: TStringList;
  iZeile: integer;
  sZeile: string;
begin
  Randomize;
  slZeilen := TStringList.Create;
  slZeilen.LoadFromFile('deineDatei.txt');
  iZeile := Random(slZeilen.Count);
  sZeile := slZeilen.Strings[iZeile]// deine Zeile
  slZeilen.Free;
end;
 
MfG Gocher
akt. Projekt: Webserver(HTTPS HTTP/2) mit integrierten CMS in Free Pascal - www.gocher.me

Antworten