AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

zeilenumbruch in text-file löschen

Ein Thema von ArminF · begonnen am 21. Mär 2006 · letzter Beitrag vom 21. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
ArminF

Registriert seit: 15. Feb 2006
7 Beiträge
 
#1

zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:12
Moin,

hab grad ein kleines problem (abgesehen davon daß ich ein blutiger delpi2005-laie bin und erst seit einigen monaten wieder begonnen habe, ein wenig just for fun zu programmieren...):

für ein kleines simples programm benötige ich ein textfile. Die Rohdaten dazu sozusagen sind DNA-Sequenzen, die mit Zeilenumbruch in Datenbanken im Internet zu finden sind.
Um innerhalb dieser DNA-Sequenz etwas zu suchen, stört mich dieser Zeilenumbruch, weshalb ich mit Hilfe eines Word-Makros die Zeilenumbrüche alle lösche und dann diese große große Zeile, die dabei entsteht, in eine .txt-Datei speichere, mit der ich dann im Programm arbeite.

Jetzt meine Frage: (Wie) kann ich in einer Textdatei direkt in Delphi die Zeilenumbrüche am Ende jeder Zeile löschen?

PS. für Interessierte kann ich auch gerne etwas mehr zu dem Programm sagen, aber ich wollte jetzt gleich bei meiner ersten Frage mit allzu vielen Nebensächlichkeiten nerven

Grüße

armin
  Mit Zitat antworten Zitat
moonwhaler

Registriert seit: 22. Dez 2005
57 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:18
Hallo,

versuch es mal mit der Funktion "StringReplace". Als Suchstring verwendest du "\n" und ersetzen tust du es durch "" (leer) oder ein Freizeichen - je nach Bedarf. Möglich ist auch die Suche nach "\n" via der Funktion "POS", um die genaue Position herauszufinden und dies via "DELETE" aus dem Text zu löschen... Viele Wege führen nach Rom.

Grüße.
  Mit Zitat antworten Zitat
ArminF

Registriert seit: 15. Feb 2006
7 Beiträge
 
#3

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:21
Zitat von moonwhaler:
Hallo,

versuch es mal mit der Funktion "StringReplace". Als Suchstring verwendest du "\n" und ersetzen tust du es durch "" (leer) oder ein Freizeichen - je nach Bedarf. Möglich ist auch die Suche nach "\n" via der Funktion "POS", um die genaue Position herauszufinden und dies via "DELETE" aus dem Text zu löschen... Viele Wege führen nach Rom.

Grüße.
steht dieses "\n" für einen Zeilenumbruch oder wie kommt es zu diesem Ausdruck?

Danke schon mal für deine fixe antwort, werd das nachher mal ausprobieren...
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:23
StringReplace ist meiner Erfahrung nach für größere Datenmengen viel zu langsam, aber versuchen kannst Du es ja mal.

"\n" geht in Delphi natürlich nicht. Jetzt kommt es aber erst einmal darauf an, wie der Zeilenumbruch in den Dateien definiert ist. Einfach mal (fürs erste) StringReplace mit #13#10 bzw. #10 als zu Suchenden String testen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#5

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:25
Hi,

Ich würde die Datei in eine StringList laden und dann StringReplace benutzen:

Delphi-Quellcode:
Var Source: TStringList;
[...]
Source := TStringList.Create;
Source.LoadFromFile ('c:\datei.txt');
Source.Text := StringReplace (Source.Text, #13#10, '', [rfReplaceAll]);
Source.SaveToFile;
Wegen der Geschwindigkeit: Mache ähnliches mit Dateien bis 5 MB Größe und die Geschwindigkeit ist OK.


Gruß
Hollie
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 13:31
Erst mal herzlich willkommen in der Delphi-Praxis an alle Neu-Poster. Gilt aber auch für Sakura. Ja, viele Wege führen nach Rom. Hier noch einer : zeilenweise lesen und Zeilen aneinanderhängen.

Delphi-Quellcode:
var t : textfile;
    zeile,
    gesamt : string;
begin
...// Datei öffnen
  gesamt := '';
  readln (t,zeile);
  gesamt := gesamt + zeile;
...// wegschreiben und Datei schliessen
end.
[edit=Luckie]Und an den alten Poster, der anscheinend noch keine Delphi-Tags kennt. Mfg, Luckie[/edit]
Gruß
Hansa
  Mit Zitat antworten Zitat
moonwhaler

Registriert seit: 22. Dez 2005
57 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 14:07
EDIT:
Wurde bereits alles erwähnt. Sorry an die Moderatoren... Hab ich zu spät bemerkt.
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 14:27
@Hansa: War schon ein guter Anfang aber ich würde an deiner Stelle auch noch speicherschonend speichern. Wenn du das, was du da machst, bei einer 2,01-GB-Textdatei ( ) versuchst, wird es aus RAM-Mangel unter einem 32-Bit-System, d.h. mindestens bis Delphi2007/WinVista/64bit Prozessor/4GBRAM nicht klappen

Delphi-Quellcode:
procedure entfernezeilenumbrueche(filename:string);
var
  f,t:textfile;
  zeile:string;
begin
  assignfile(f,filename);
  reset(f);
  assignfile(t,filename+'.tmp');
  rewrite(t);
  while not eof(f) do begin
    readln(f,zeile);
    write(t,zeile+' ');
  end;
  closefile(f);
  closefile(t);
end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
ArminF

Registriert seit: 15. Feb 2006
7 Beiträge
 
#9

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 15:26
sodele,

ich sag mal allen danke. werde dann mal mein glück versuchen
  Mit Zitat antworten Zitat
ArminF

Registriert seit: 15. Feb 2006
7 Beiträge
 
#10

Re: zeilenumbruch in text-file löschen

  Alt 21. Mär 2006, 17:07
Code:
var
  f1, t1 : text;
  zeile : string;

begin
  writeln ('Bitte speichern Sie die komplette cDNA-Sequenz 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);
  assign (t1,'d:\armin\codeX\cDNA_tmp.txt');
  reset (t1);
  while not eof(f1) do
    begin
      readln (f1,zeile);                                                        
      write(t1,zeile);                                                          
    end;
  read (t1, cDNAgesamt);
  close (f1);
  close (t1);
end;
aargh... ich krieg die krätze... jetzt kackt mir das programm andauernd ab.

Problem: ich will den kompletten text aus t1 in den string cDNAgesamt kopieren. Macht man ja mit

Code:
read(t1,cDNAgesamt);
sag ich allerdings

Code:
read(f1,cDNAgesamt);
kackt mir nix ab, was mir aber nicht weiterhilft, da ich ja in f1 die textdatei MIT zeilenumbruch habe...

kann mir mal jemand sagen auf welchem schlauch ich sitze?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:52 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