AGB  ·  Datenschutz  ·  Impressum  







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

Problem: Datei mit Zeilenumbruch

Ein Thema von qb-tim · begonnen am 7. Sep 2007 · letzter Beitrag vom 18. Dez 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#1

Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 14:27
Hi,

ich habe ein kleine Problem:

Eine Datei, die ich Zeile für Zeile auswerten will, lädt Delphi aber als eine gesamte Zeile ohne Zeilenumbrüchen. Ist es möglich die Datei richtig mit Zeilenumbrüchen zu laden, ohne die Datei verändern zu müssen?

Danke im Voraus,

TIM

PS: Im Notepad sehe ich, wie die Zeilenumbrüche als Kästchen interpretiert werden, aber in WordPad ist es richtig...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 14:30
Moin Tim,

wie versuchst Du denn die Datei zu laden?
Deiner Beschreibung nach, wird sie nur ein #10 als Zeilenendekennung enthalten, was allerdings beim Laden in eine TStringList automatisch korrigiert werden sollte.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#3

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 14:32
Delphi-Quellcode:
AssignFile(xy,'datei.abc');
Reset(xy);
ReadLn(xy, String1);

// etc...

CloseFile(xy);
Ich habe auch bemerkt, dass eine Stringlist die Zeilenumbrüche aufhebt, aber geht es nicht einfacher, Delphi auf diese Zeilenumbrüche abzustimmen?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 14:36
Nun, readLn sucht als Zeileende #10#13 und nicht nur #10.

Kommt die Datei von einem Linux/Unixsystem?
Wie wird die Datei übertragen. Wenn FTP dann sollte es im Ascii Format sein
dann geschieht die Anpassung der verschiedenen Zeilenendezeichen automatisch.
Sonst gibt es da auf den Linux/Unixsystemen noch ein Tool das nennt sich unix2dos.

Was spricht dagegen mit Stringlisten zu arbeiten?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von qb-tim
qb-tim

Registriert seit: 3. Mär 2006
Ort: Deutschland
280 Beiträge
 
Delphi 6 Professional
 
#5

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 14:37
OK, ich habe es jetzt mit einer StringList gemacht:

Delphi-Quellcode:
sl := TStringList.Create;
sl.LoadFromFile('datei.abc');
for i := 0 to sl.Count - 1 do
begin
  // etc...
end;
sl.Free
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 15:07
Moin Klaus,

Zitat von Klaus01:
Nun, readLn sucht als Zeileende #10#13 und nicht nur #10.
Nein. Zeilenende ist #13#10

Zitat von Klaus01:
Was spricht dagegen mit Stringlisten zu arbeiten?
Ich denke, dass hängt auch von der Dateigrösse ab.
In manchen Fällen kann es durchaus erhebliche Performancegewinne geben, wenn Textdateien zeilenweise verarbeitet.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Problem: Datei mit Zeilenumbruch

  Alt 7. Sep 2007, 17:46
Zitat von Christian Seehase:
Moin Klaus,

Zitat von Klaus01:
Nun, readLn sucht als Zeileende #10#13 und nicht nur #10.
Nein. Zeilenende ist #13#10 ;-)
Hallo Christian,

danke für den Hinweis, ich verwechsele das immer wieder. Sollte nicht sein.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#8

Re: Problem: Datei mit Zeilenumbruch

  Alt 8. Sep 2007, 08:40
Zitat von qb-tim:
OK, ich habe es jetzt mit einer StringList gemacht:

Delphi-Quellcode:
sl := TStringList.Create;
sl.LoadFromFile('datei.abc');
for i := 0 to sl.Count - 1 do
begin
  // etc...
end;
sl.Free
Back to the roots: ich baue mir in so einem Fall ein ReadLn_Spezial (bzw. hole es aus dem Schrank, das Problem kommt ja öfter vor), das bereits beim Einlesen LF durch CR-LF ersetzt. So macht das auch Wordpad. VCL ist überflüssig.

Gruss Reinhard
  Mit Zitat antworten Zitat
Micha88
(Gast)

n/a Beiträge
 
#9

AW: Problem: Datei mit Zeilenumbruch

  Alt 18. Dez 2011, 16:10
Selbiges Problem habe ich nun auch zum ersten Mal.

Lese ich eine in Windows geschriebene Textdatei in eine StringList ein und gehe sie mit einer Schleife durch, kein Problem.

Gehe ich eine in Linux (denke ich) erstellte Textdatei (vielleicht auch durch PHP erstellt) durch, scheint "alles in einer Zeile" zu sein.
In Notepad sieht es etwa so aus:
aaa bbb ccc ddd
in WordPad so:
aaa
bbb
ccc
ddd


Wie geht man hier am besten vor?

Geändert von Micha88 (18. Dez 2011 um 16:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Problem: Datei mit Zeilenumbruch

  Alt 18. Dez 2011, 16:18
Wie wäre es #10 mit Hilfe von Posex in #13#10 zu ändern?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 19:27 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