Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem beim Ermitteln der Zahl der Elemente einer Textdatei (https://www.delphipraxis.net/209942-problem-beim-ermitteln-der-zahl-der-elemente-einer-textdatei.html)

Gelmo 10. Feb 2022 18:07

Delphi-Version: 10.3 Rio

Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Hallo zusammen!
Ich möchte feststellen, wieviele Elemente sich in einer Textdatei befinden.
Dazu habe ich durch einen Link in diesem Forum eine Formel gefunden, die ich für meine Zwecke so umformuliert habe:
Delphi-Quellcode:
var
SZF_Elemente : Byte;
AktDatei    : String;
...
AktDatei:=OpenDialog1.Filename;
...
SZF_Elemente:=Ord(High(AktDatei))-Ord(Low(AktDatei))+1;
...
Wie ist dann zu erklären, dass als Ergebnis >>101<< angezeigt wird, wenn ich die Datei mit dem Editor öffne, aber 81 Zeilen zu zählen sind?
Die Datei enthält tatsächlich nichts als die Inhalte von 81 Sudoku-Kästchen, entweder die darin enthaltenen Ziffern oder eine Null bei leeren Kästchen.
Ich möchte aber für Zwischenergebnisse noch die Bytewerte für Stunden 😊, Minuten und Sekunden anhängen, die für eine Lösung bisher verstrichen sind. Um Fehler beim Auslesen der Dateien zu vermeiden, möchte ich die Länge vorher feststellen.
Hat da vielleicht jemand eine Idee, wie die Elementezahl zuverlässig bestimmt werden kann?
Dafür vielen Dank
MfG Gelmo

zeras 10. Feb 2022 19:05

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Kannst du mal erklären, was in der Datei stehen soll?
Wie sind die Daten getrennt?

Gelmo 10. Feb 2022 19:19

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Nun, die einzelnen Strings werden mittels writln in eine Textdatei geschrieben.
Delphi-Quellcode:
...
var
  sf : Textfile;
...
Assignfile(sf,AktDatei);
for ui:=1 to 81 do writln(Feldinhalt[ui]);
closefile(f);

Dalai 10. Feb 2022 19:21

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Der Code im OP oben agiert auf dem Dateinamen, nicht dem Inhalt. Fehlt da was, oder sieht der Code wirklich so aus? Wie wär's mit TStringList.LoadFromFile und einem nachfolgenden TStringList.Count?

Grüße
Dalai

Gelmo 10. Feb 2022 19:52

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Der Code funktioniert ohne Fehlermeldung, liefert aber ein falsches Ergebnis. Wenn ich AktDatei durch sf ersetze, erscheint die Fehlermeldung "Inkompatible Typen".
Ich werde mal die Lösung mit Stringlist versuchen; dann kann ich aber zahlreiche Dateien nicht einfach weiter verwenden.
Einfacher wäre es für mich jetzt, die Anzahl der Elemente einer Textdatei im Voraus feststellen zu können.
Jedenfalls herzlichen Dank!

zeras 10. Feb 2022 19:55

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Zitat:

Zitat von Gelmo (Beitrag 1501975)
Einfacher wäre es für mich jetzt, die Anzahl der Elemente einer Textdatei im Voraus feststellen zu können.

Wie oben beschrieben. In eine Stringlist landen und dann mit Count hast du dann die Zeilenanzahl (wenn es sich nur um Strings handelt)

himitsu 10. Feb 2022 20:05

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Wie schon gesagt, dein Code liefert das richtige Ergebnis, jedenfalls das, welches dein Code da produzieren soll.

= Anzahl der Zeichen (Chars) im Text


Wenn man deinen Code kürzt, dann kommt
Delphi-Quellcode:
SZF_Elemente := {High} Length(AktDatei) - {Low} 1 + 1;
dabei raus, also letztendlich
Delphi-Quellcode:
SZF_Elemente := Length(AktDatei);
,
wobei "AktDatei" einfach nur der Text mit dem Dateinamen ist, also nicht der Dateiinhalt :!:


Zum Schreiben und Lesen einfach eine Delphi-Referenz durchsuchenTStringList
oder ein String-Array und dann Delphi-Referenz durchsuchenTFile.ReadAllLines und TFile.WriteAllLines,
anstatt dieser "uralten" Pascalfunktionen.

hoika 11. Feb 2022 04:18

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Hallo,
um es noch einmal zu sagen.

Dein Code hat nichts mit dem Inhalt der Datei zu tun.
Nimm mal die gleiche Datei und häng an den Dateinamen ein Zeichen an.

Das Ergebnis wäre dann wohl 102.

KodeZwerg 11. Feb 2022 07:46

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Zitat:

Zitat von himitsu (Beitrag 1501978)
Zum Schreiben und Lesen einfach eine Delphi-Referenz durchsuchenTStringList

kann ich auch nur hinempfehlen. stampf diesen dinosaurier quelltext ein und willkommen im jetzt.

peterbelow 11. Feb 2022 16:38

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
 
Zitat:

Zitat von Gelmo (Beitrag 1501967)
Hallo zusammen!
Ich möchte feststellen, wieviele Elemente sich in einer Textdatei befinden.

Dann erzähl uns erstmal was Du unter "Element" verstehst. Zeichen, Zeilen, Worte, Paragraphen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 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