Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anzahl der Dateisätze auslesen? (https://www.delphipraxis.net/108990-anzahl-der-dateisaetze-auslesen.html)

Hurleybird 22. Feb 2008 13:34


Anzahl der Dateisätze auslesen?
 
Wenn ich zB 5 Datensätze in einer Datei habe, mit welchem Befehl kann ich die "5" herausbekommen?
Also wie kann ich herausfinden, wie viel Datensätze es gibt?

Ach ja, bin übrigens neu hier und hoffe ich bin im richtigen Bereich...

Würde mich über eine Antwort freuen...

marabu 22. Feb 2008 13:38

Re: Anzahl der Dateisätze auslesen?
 
Herzlich willkommen in der Delphi-PRAXiS, Hurleybird.

Das hängt sehr davon ab, ob deine Datensätze eine feste Länge haben oder nicht. Bei fester Länge kannst du die Satzzahl aus der Dateigröße errechnen, bei variabler Länge musst du die Sätze abzählen. Immer vorausgesetzt, dass die Datei die Zahl nicht bereits in einem Header zur Verfügung stellt.

Freundliche Grüße vom marabu

Bernhard Geyer 22. Feb 2008 13:38

Re: Anzahl der Dateisätze auslesen?
 
Wie sind deine Datensätze in der Datei gespeichert? Typisierte Datei, CSV, XML, ...

Bei typisierter Datei würde ich sagen:

Delphi-Quellcode:
Dateigröße/SizeOf(Datenrecord der verwendet wird);

Hurleybird 22. Feb 2008 13:46

Re: Anzahl der Dateisätze auslesen?
 
Jop, typisiert und mit fester Länge!

sizeof hat geklappt, vielen dank!

Hurleybird 22. Feb 2008 14:18

Re: Anzahl der Dateisätze auslesen?
 
Ne, hat wohl doch noch nicht so ganz hingehauen.
Ok ich beschreibe es mal etwas genauer:

Ich habe ein record, welches aus 2 strings mit der länge [50] sind.
Das record speichere ich jetzt in der Datei.
Nun habe ich sowas wie

Datensatz0 String1 String2
Datensatz1 String1 String2

usw...

wenn ich
Delphi-Quellcode:
Stringgrid1.rowCount:=sizeof(datei);
schreibe, macht er mir 322 rows, ich vermute weil er die bits zählt oder sowas.

Wie kann ich aber die nummer der Datensätze bekommen, also in diesem Fall "2" ??

Nuclear-Ping 22. Feb 2008 14:22

Re: Anzahl der Dateisätze auslesen?
 
Mit SizeOf bekommst du die Größe eines Typen, nicht einer Datei.

gmc616 22. Feb 2008 14:46

Re: Anzahl der Dateisätze auslesen?
 
Wie liest du die Datei aus?

Hurleybird 22. Feb 2008 15:12

Re: Anzahl der Dateisätze auslesen?
 
Zitat:

Zitat von gmc616
Wie liest du die Datei aus?

wie meinst du das?

seek(Datei,nummer);
read(Datei,meinstring);

so...

@nuclear-ping: ich möchte auch nicht die größe der datei, sondern die anzahl der vorhandenen auflistungen/datensätze

gmc616 22. Feb 2008 15:18

Re: Anzahl der Dateisätze auslesen?
 
Dann sollte der Vorschlag von Bernhard Geyer in #3 funktionieren, oder?

Hurleybird 22. Feb 2008 15:20

Re: Anzahl der Dateisätze auslesen?
 
Zitat:

Zitat von gmc616
Dann sollte der Vorschlag von Bernhard Geyer in #3 funktionieren, oder?

dachte ich auch, aber er gibt mir immer 332 als zahl raus, egal wieviele nummern tatsächlich belegt sind...

Xong 22. Feb 2008 15:30

Re: Anzahl der Dateisätze auslesen?
 
Zitat:

Zitat von Hurleybird
Zitat:

Zitat von gmc616
Dann sollte der Vorschlag von Bernhard Geyer in #3 funktionieren, oder?

dachte ich auch, aber er gibt mir immer 332 als zahl raus, egal wieviele nummern tatsächlich belegt sind...

Du hast aber nicht die Methode von Bernhard benutzt.

Hurleybird 22. Feb 2008 15:32

Re: Anzahl der Dateisätze auslesen?
 
Zitat:

Zitat von Xong
Zitat:

Zitat von Hurleybird
Zitat:

Zitat von gmc616
Dann sollte der Vorschlag von Bernhard Geyer in #3 funktionieren, oder?

dachte ich auch, aber er gibt mir immer 332 als zahl raus, egal wieviele nummern tatsächlich belegt sind...

Du hast aber nicht die Methode von Bernhard benutzt.

Ich hab doch sizeOf benutzt, was auch nicht geht???

Also wenn ich

Delphi-Quellcode:
Stringgrid1.rowCount:= sizeof(datei);
beunutze, kommt als wert immer 332 raus....

gmc616 22. Feb 2008 15:34

Re: Anzahl der Dateisätze auslesen?
 
Delphi-Quellcode:
type TDeineDaten = record
  String1 : string[50];
  String2 : string[50];
end;


Stringgrid1.rowCount:= Dateigröße div SizeOf(TDeineDaten);
Allerdings bin ich mit nicht sicher, ob deine Lade- und Speicherfunktion dazu passt, da ich zu wenig von deinem Code kenne.

Xong 22. Feb 2008 15:35

Re: Anzahl der Dateisätze auslesen?
 
Bernhard hat aber das geschrieben:
Zitat:

Zitat von Bernhard Geyer
Delphi-Quellcode:
Dateigröße/SizeOf(Datenrecord der verwendet wird);

Und beachte, dass du mit sizeof nicht die Dateigröße bekommst!

Hurleybird 22. Feb 2008 15:39

Re: Anzahl der Dateisätze auslesen?
 
Zitat:

Zitat von Xong
Bernhard hat aber das geschrieben:
Zitat:

Zitat von Bernhard Geyer
Delphi-Quellcode:
Dateigröße/SizeOf(Datenrecord der verwendet wird);

Und beachte, dass du mit sizeof nicht die Dateigröße bekommst!


achso, das "/" hab ich als slash gedeutet :oops:

Und wie bekomm ich meine Dateigröße raus (also befehl) ?

Hurleybird 22. Feb 2008 16:51

Re: Anzahl der Dateisätze auslesen?
 
Habs gelöst!! Der Befehl hieß filesize :bounce1: :bouncing4: :bounce2: :cheers: :dancer:

Danke!


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