Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   EOF beendet das Einlesen einer Datei vorzeitig (https://www.delphipraxis.net/184380-eof-beendet-das-einlesen-einer-datei-vorzeitig.html)

dGeek 21. Mär 2015 00:06

EOF beendet das Einlesen einer Datei vorzeitig
 
Ich habe eine sehr große Textdatei, welche mehrfach ein EOF, also enthält.

Ein Einlesen per Stream oder TStringList ist also nicht möglich.

Wie kann ich diese Datei konvertieren bzw alle unnötigen EOF entfernen?

Sir Rufo 21. Mär 2015 00:09

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Wieso sollte da kein Stream gehen? Mit einem
Delphi-Quellcode:
TFileStream
kannst du die gesamte Datei rauf und runter ackern ... wie du lustig bist

dGeek 21. Mär 2015 00:13

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Habe das schon alles durch.

In Notepad++ wird mir das verdächtige Zeichen als NUL angezeigt, es kann aber nur ein #26, also EOF sein.
Denn selbst ein Stream hört dort auf zu lesen.

Edit:
was ich noch dazu sagen sollte ist, dass die Datei kein BOM hat!

Sir Rufo 21. Mär 2015 00:19

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Dann hast du da eine Zauberdatei, die eine Aversion gegen Delphi hat :roll:

Ein
Delphi-Quellcode:
TFileStream
kann die Datei rauf und runter lesen und zwar jedes einzelne Byte (und ich sage Byte und nicht String)

dGeek 21. Mär 2015 00:21

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Ich kann die Datei extrem gekürzt mit genau diesem Zeichen mal hier rein stellen wenn du möchtest.

dGeek 21. Mär 2015 00:26

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Liste der Anhänge anzeigen (Anzahl: 1)
Datei mit seltsamen Zeichen in Zeile 4. Mit Notepad++ öffnen oder in Delphi einlesen.
Siehe Anhang.

Delphi-Quellcode:
sl := TStringList.Create;
    try
      sl.LoadFromFile(aFile);
      showmessage(IntToStr(sl.Count - 1));
      for i := 0 to sl.Count - 1 do
      begin
        showmessage(sl.Strings[i]);
      end;
    finally
      sl.Free;
    end;

Sir Rufo 21. Mär 2015 00:32

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Zitat:

Zitat von dGeek (Beitrag 1294295)
Ich kann die Datei extrem gekürzt mit genau diesem Zeichen mal hier rein stellen wenn du möchtest.

Danke, soweit bin ich schon, dass ich mir eine Datei erzeugen kann, wo ein Byte 00 ist. Aber du solltest dir die Datei mal mit einem Hex-Editor anschauen.

Wenn du keinen Hex-Editor hast, dann kannst du dir ganz schnell selber einen bauen. Mit
Delphi-Quellcode:
TFileStream
die Datei öffnen und jedes Byte in Hex-Darstellung anzeigen lassen.

Dalai 21. Mär 2015 00:33

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Zitat:

Zitat von dGeek (Beitrag 1294293)
In Notepad++ wird mir das verdächtige Zeichen als NUL angezeigt [...]

Und dann kommst du in #6 mit TStringList? Das kann nix werden. Aber mit Streams wird das sicher funktionieren; wie genau weiß ich mangels Erfahrung damit aber nicht zu sagen.

MfG Dalai

dGeek 21. Mär 2015 00:35

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Ok 00 sehe ich. Dann ist es doch nicht wie vermutet ein #26.

Was bedeutet dieses 00 denn nun? EOF ja wohl nicht, nehme ich an.

Edit: Frage hat sich gerade geklärt.

Sir Rufo 21. Mär 2015 00:42

AW: EOF beendet das Einlesen einer Datei vorzeitig
 
Zitat:

Zitat von dGeek (Beitrag 1294300)
Ok 00 sehe ich. Dann ist es doch nicht wie vermutet ein #26.

Was bedeutet dieses 00 denn nun? EOF ja wohl nicht, nehme ich an.

Es kann alles bedeuten: Angriff der Killerbienen, Invasion vom Mars, 42-42, wieviel Lust ich heute zum Aufräumen habe, ...

Die wirkliche Bedeutung kommt erst durch den Kontext. Einfach nur 0 sagt nur 0 aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 Uhr.
Seite 1 von 2  1 2      

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