AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Problem beim Ermitteln der Zahl der Elemente einer Textdatei
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Ermitteln der Zahl der Elemente einer Textdatei

Ein Thema von Gelmo · begonnen am 10. Feb 2022 · letzter Beitrag vom 12. Feb 2022
Antwort Antwort
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
37 Beiträge
 
Delphi 10.3 Rio
 
#1

Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 18:07
Delphi-Version: 10.3 Rio
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
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 19:05
Kannst du mal erklären, was in der Datei stehen soll?
Wie sind die Daten getrennt?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
37 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 19:19
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);
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#4

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 19:21
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
  Mit Zitat antworten Zitat
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
37 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 19:52
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!
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.651 Beiträge
 
Delphi 12 Athens
 
#6

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 19:55
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)
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.343 Beiträge
 
Delphi 12 Athens
 
#7

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 10. Feb 2022, 20:05
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 SZF_Elemente := {High} Length(AktDatei) - {Low} 1 + 1; dabei raus, also letztendlich 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.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (11. Feb 2022 um 13:36 Uhr)
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
712 Beiträge
 
Delphi 12 Athens
 
#8

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 11. Feb 2022, 16:38
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...
Peter Below
  Mit Zitat antworten Zitat
Gelmo

Registriert seit: 14. Sep 2006
Ort: Niederrhein
37 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: Problem beim Ermitteln der Zahl der Elemente einer Textdatei

  Alt 12. Feb 2022, 11:17
Hallo zusammen!
Zuerst einmal vielen Dank für den Hinweis auf TStringList. Damit konnte ich sofort die gewünschte Anzahl der Elemente, im dargestellten Fall also die Zahl der gespeicherten Textzeilen, ermitteln.
Die Vorteile von TStringList gegenüber dem Speichern von Textdateien Zeile für Zeile leuchten mir sofort ein. Ich habe tatsächlich mal mit Turbo-Pascal an einer Volkshochschule angefangen und programmiere seither gelegentlich als Autodidakt und Hobbyist weiter. Aber mit Unterstützung im Forum kann man ja immer noch dazu lernen.
Mein Beitrag kommt übrigens so spät, weil ich trotz vorheriger Anmeldung im Forum beim Abschicken eines früheren Textes mit der Meldung, ich müsse mich zuerst anmelden, „aus dem Verfahren“ geworfen worden bin.
Allen ein schönes Wochenende
MfG Gelmo
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:53 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-2025 by Thomas Breitkreuz