![]() |
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:
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?
var
SZF_Elemente : Byte; AktDatei : String; ... AktDatei:=OpenDialog1.Filename; ... SZF_Elemente:=Ord(High(AktDatei))-Ord(Low(AktDatei))+1; ... 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 |
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? |
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); |
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 |
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! |
AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
Zitat:
|
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:
dabei raus, also letztendlich
SZF_Elemente := {High} Length(AktDatei) - {Low} 1 + 1;
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 ![]() oder ein String-Array und dann ![]() anstatt dieser "uralten" Pascalfunktionen. |
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. |
AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
Zitat:
|
AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 Uhr. |
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 by Thomas Breitkreuz