![]() |
Problem Dateiagröße
Delphi-Quellcode:
AssignFile(Buecher, 'C:\Users\user\Documents\Bücher\111Buchtitel111.dat');
if (FileExists('C:\Users\user\Documents\Bücher\111Buchtitel111.dat')) then reset(Buecher) else rewrite(Buecher); Groesse:= FileSize(Buecher);//<---- is File of ShortString(dort sind die Namen aller eingetragenen Bücher gespeichert) for AlleBuecher := 1 to Groesse do begin read(Buecher, x); Form3.RadioGroup2.Items.Add(x); end; closefile(Buecher) end; allerdings hab ich mitbekommen das FileSize nciht die Anzahl der Elemente die auf der Datei gespeichert sind feststellt sondern einfach nur die größe an sich. Wie könnte ich die Größe der Elemente in der datei feststellen??? |
Re: Problem Dateiagröße
Teile mal die größe der Datei durch die größe eines Eintrags:
Delphi-Quellcode:
Groesse:= FileSize(Buecher) / SizeOf(x);
|
Re: Problem Dateiagröße
File of ShortString? Wieso nicht einfach eine Textdatei und dann mit TStringlist bearbeiten?
|
Re: Problem Dateiagröße
ka hab ich erst gehabt und dann geändert weils nciht ging
|
Re: Problem Dateiagröße
Was bedeutet ging nicht? Fehler?
|
Re: Problem Dateiagröße
Liste der Anhänge anzeigen (Anzahl: 1)
dann kommt immer fehler 104 und 32 wo genau und so ka hier schaut selbst ich weiß nicht was da falsch läuft
ach und das ich suboptimal programmiere wurde mir schon gesagt lasst es bitte trotzdem so (ich sitz jetzt schon ne ganze weile and dem problem) ich hab das jetzt nochmal auf textfile geändert |
Re: Problem Dateiagröße
Zitat:
|
Re: Problem Dateiagröße
Zitat:
Du arbeitest hier mit einer typisierten Datei. Ein Datensatz, Element, hat die Größe Deiner Typisierung, hier also SizeOf("ShortString"), gibt also 256 Byte. Die Dateigröße wird bei einem Write immer um diese Größe vergrößert. Einfacher ist es, einfach durch die Datei zu gehen, ohne for:
Delphi-Quellcode:
Hierbei spielt die Datensatzgröße keine Rolle, denn nach jedem Read wird der Datensatzzeiger um eins nach vorne gesetzt. Und am Ende der Datei steht dann EOF.
reset(Buecher);
while not Eof(Buecher) do begin read(Buecher, x); Form3.RadioGroup2.Items.Add(x); end; closefile(Buecher); Falls Du Interesse an einem von mir in der MIF-Vorlesung erstellten Beispieles hast, einfach nochmal melden, dann suche ich die Quellen raus. Dort haben wir ein kleines Adressverwaltungsprogramm erstellt, welches mit Records arbeitet. mfg Michael |
Re: Problem Dateiagröße
Ein Minimalbeispiel hatte ich ihm bereits per PM geschickt (hab wohl mein eigenes Tut nicht gelesen :lol:), aber er möchte von seinem Konzept nicht abweichen. Ich persönlich finde allerdings, wenn man im Laufe der Programmierung merkt, dass bereits der Ansatz Mist war, muss man (zumindest bei kleineren Projekten) auch mal den Mut haben, alles in die Tonne zu treten und neu anzufangen.
|
Re: Problem Dateiagröße
@michael habbe: ich hab das einfach mal so eingesetzt wie dus gesagt hast (jetzt startets nicht mehr) (im Aufruf Stack wird angezeigt auf die Prozedure kann nicht zugegriffen werden)
@deddyh : ich mach das noch mal neu wenn ich es so fertig bekommen hab (ich hab mich auch darüber gefreut das de mir das geschickt hast (dadurch lernt man immer was dazu)) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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