Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi zeilenumbruch in text-file löschen (https://www.delphipraxis.net/65845-zeilenumbruch-text-file-loeschen.html)

xaromz 21. Mär 2006 16:39

Re: zeilenumbruch in text-file löschen
 
Hallo,

Du solltest vielleicht nach dem Schreiben von t1 den Dateizeiger mit Delphi-Referenz durchsuchenSeek zurücksetzen, sonst liest Du nach dem Ende der Datei.

Gruß
xaromz

Hansa 21. Mär 2006 16:49

Re: zeilenumbruch in text-file löschen
 
Zitat:

Zitat von ArminF
aargh... ich krieg die krätze... jetzt kackt mir das programm andauernd ab.

Und das wundert Dich auch noch ? Reset <F1> und dann mal genau gucken. Das andere fängt auch mit re... an. :lol:

ArminF 21. Mär 2006 16:51

Re: zeilenumbruch in text-file löschen
 
Delphi-Quellcode:
procedure cDNAEingabe;                                                         {Eingabe der cDNA}

var
  f1, t1 : text;
  zeile : string;

begin
  writeln ('Bitte speichern Sie die komplette cDNA-Sequenz');
  writeln ('OHNE ZEILENUMBRUCH in d:\armin\cNDA.txt');
  writeln ('Bitte Datei wieder schliessen und mit RETURN bestaetigen!');
  readln;
  writeln;
  assign (f1,'d:\ARMIN\codeX\cDNA.txt');
  rewrite (f1);
  assign (t1,'d:\ARMIN\codeX\cDNA_tmp.txt');
  reset (t1);
  while not eof(f1) do
    begin
      readln (f1,zeile);        {liest aus f1 eine Zeile und speichert in "zeile"}
      write(t1,zeile);          {schreibt in t1 den Inhalt von zeile}
    end;
  seek (t1,0);
  read (t1,cDNAgesamt);
  close (f1);
  close (t1);
end;
...bekomm ich als fehlermeldung "inkompatible typen" bei der zeile

Delphi-Quellcode:
seek (t1,0);
kann es sein, dass seek bei textdateien nicht funktioniert?

ArminF 21. Mär 2006 16:54

Re: zeilenumbruch in text-file löschen
 
Zitat:

Zitat von Hansa
Zitat:

Zitat von ArminF
aargh... ich krieg die krätze... jetzt kackt mir das programm andauernd ab.

Und das wundert Dich auch noch ? Reset <F1> und dann mal genau gucken. Das andere fängt auch mit re... an. :lol:

hä?! jetzt versteh ich nur bahnhof :roll: ...und was bitte fängt auch mit re... an?! Bitte keine armen verstreuten akademiker verwirren, bitte :lol:

Hansa 21. Mär 2006 17:04

Re: zeilenumbruch in text-file löschen
 
1. nachträglich geänderter Quelltext ist für Fragesteller selber nicht gut. (reset <-> rewrite) 8)

2. Folgefehler : Logik schreiben/lesen nicht ganz klar, was ?


Zitat:

Zitat von ArminF
Delphi-Quellcode:
  while not eof(f1) do
    begin
      readln (f1,zeile);                                                        {liest aus f1 eine Zeile und speichert in "zeile"}
      write(t1,zeile);                                                          {schreibt in t1 den Inhalt von zeile}
    end;
  seek (t1,0);
  read (t1,cDNAgesamt);
  close (f1);
  close (t1);
end;


3. Wozu überhaupt close ?

4. Was soll das seek bewirken ?

F1 bewirkt Wunder ! 8)

xaromz 21. Mär 2006 17:05

Re: zeilenumbruch in text-file löschen
 
Hallo,
Zitat:

Zitat von ArminF
hä?! jetzt versteh ich nur bahnhof :roll: ...und was bitte fängt auch mit re... an?! Bitte keine armen verstreuten akademiker verwirren, bitte :lol:

Du hast Rewrite und Reset vertauscht. Du öffnest die Quelldatei zum Schreiben und die Zieldatei zum Lesen.
Versuch's mal so:
Delphi-Quellcode:
procedure cDNAEingabe;                                                         {Eingabe der cDNA} 

var
  f1, t1 : text;
  zeile : string;

begin
  writeln ('Bitte speichern Sie die komplette cDNA-Sequenz');
  writeln ('OHNE ZEILENUMBRUCH in d:\armin\cNDA.txt');
  writeln ('Bitte Datei wieder schliessen und mit RETURN bestaetigen!');
  readln;
  writeln;
  assign (f1,'d:\ARMIN\codeX\cDNA.txt');
  reset (f1);         // <- hier
  assign (t1,'d:\ARMIN\codeX\cDNA_tmp.txt');
  rewrite (t1);       // <- und hier
  while not eof(f1) do
    begin
      readln (f1,zeile);                                       {liest aus f1 eine Zeile und speichert in "zeile"} 
      write(t1,zeile);                                         {schreibt in t1 den Inhalt von zeile} 
    end;
  close (t1); // <- statt Seek: einfach neu öffnen
  reset (t1);
  read (t1,cDNAgesamt);
  close (f1);
  close (t1);
end;
Gruß
xaromz

ArminF 21. Mär 2006 17:12

Re: zeilenumbruch in text-file löschen
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von ArminF
hä?! jetzt versteh ich nur bahnhof :roll: ...und was bitte fängt auch mit re... an?! Bitte keine armen verstreuten akademiker verwirren, bitte :lol:

Du hast Rewrite und Reset vertauscht. Du öffnest die Quelldatei zum Schreiben und die Zieldatei zum Lesen.
Versuch's mal so:
Delphi-Quellcode:
procedure cDNAEingabe;                                                         {Eingabe der cDNA} 

var
  f1, t1 : text;
  zeile : string;

begin
  writeln ('Bitte speichern Sie die komplette cDNA-Sequenz');
  writeln ('OHNE ZEILENUMBRUCH in d:\armin\cNDA.txt');
  writeln ('Bitte Datei wieder schliessen und mit RETURN bestaetigen!');
  readln;
  writeln;
  assign (f1,'d:\ARMIN\codeX\cDNA.txt');
  reset (f1);         // <- hier
  assign (t1,'d:\ARMIN\codeX\cDNA_tmp.txt');
  rewrite (t1);       // <- und hier
  while not eof(f1) do
    begin
      readln (f1,zeile);                                       {liest aus f1 eine Zeile und speichert in "zeile"} 
      write(t1,zeile);                                         {schreibt in t1 den Inhalt von zeile} 
    end;
  close (t1); // <- statt Seek: einfach neu öffnen
  reset (t1);
  read (t1,cDNAgesamt);
  close (f1);
  close (t1);
end;
Gruß
xaromz

...tatsache! so funktioniert's! DAAAAAAANKE


...bin leider grad eben furchtbar aufm schlauch gestanden. :gruebel: Und auch noch ein wenig unerfahren mit delphi. hab das gute teil ja erst seit n paar wochen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:51 Uhr.
Seite 2 von 2     12   

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