AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Speicherfehler beim Schreiben & Lesen von Records
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherfehler beim Schreiben & Lesen von Records

Ein Thema von Kanne_Kaffe · begonnen am 10. Okt 2005 · letzter Beitrag vom 11. Okt 2005
Antwort Antwort
Seite 2 von 3     12 3      
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#11

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 17:12
Geht nicht. Da die Einträge mehre Million am Ende übersteigen. Bin schon von Paradox weg. Zu langsam und kann auch "nur" bis ca 260.000 Einträge verkraften. Dat reicht bei weitem nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 17:16
Zitat von Kanne_Kaffe:
Geht nicht. Da die Einträge mehre Million am Ende übersteigen. Bin schon von Paradox weg. Zu langsam und kann auch "nur" bis ca 260.000 Einträge verkraften. Dat reicht bei weitem nicht.
Hast Du schon mal ADS Local Server bzw. Absolut Datbase angeschaut.
Haben DB's mit ADS Local Server am laufen in der mehrere Mio. Datensätze vorhanden sind und an die 4 GB Datei-Grenze von local Server gelanden. Und bei Verwendung von passenden Indexe ist diese Datenbank auch noch ziemlich schnell.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 17:29
Zitat von Kanne_Kaffe:
Nein es handelt sich nur um diesen einen Record.

Jetzt funtz mit dem Schreiben und Lesen bis hier her. Aber das nächte Problem wird nicht lange auf sich warten lassen. Dank an alle.
Zitat von Kanne_Kaffe:
Geht nicht. Da die Einträge mehre Million am Ende übersteigen. Bin schon von Paradox weg. Zu langsam und kann auch "nur" bis ca 260.000 Einträge verkraften. Dat reicht bei weitem nicht.
Ja was denn nu
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#14

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 17:35
Auch 4 Gig reichen auf Dauer nicht (Test haben das schon ergeben). Ich rechne im "Normalbetrieb" mit dem 10 fachen. Locker. Bei höherer Auslastung mit Dateien bis zu 80 Gig und mehr. Ich habe mir dafür sogar eine Extra-Platte gekauft.
  Mit Zitat antworten Zitat
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#15

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 17:57
@Kroko1999 Is schon richtig so wie ich es schreibe. Es ist nur dieser 1 Record. Aber in der Datei sollen am Ende eigiges verwaltet werden.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 18:03
Hai Du Kanne voller Kaffe

Bei dieser Datenmenge würde ich in jedem Fall ein DB-System verwenden und nicht mit typisierten Dateien anfangen.

Ausser dem von Bernhard vorgeschlagnem ADS Local Server gibt es sicher auch noch andere Systeme welche da besser geeignet sind.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#17

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 18:35
Und schon stehe ich vor einem anderen Problem. Da es immer noch das selbe Thema ist denke ich diesen Thread fortzusetzten. Also ich habe jetzt meine Schreib-Procedure entsrechend angepasst um die datei nimt immer neu anzulegen sonder hineinzuschrieben. Leider geht es mit
Reset(F) nicht, da die Datei trotzdem neuangleget wird, bzw überschrieben wird.

Delphi-Quellcode:
procedure SchreibeDatei(Filename, Name, Adresse: String; Count: Cardinal);
begin
  New(FileInfo);
  FileInfo.Name := Name;
  FileInfo.Adresse := Adresse;
  FileInfo.Count := Count;

  { neuanlegen }
  if not FileExists(Filename) then begin
    AssignFile(F, Filename);
    ReWrite(F);
    write(F, FileInfo^);
    Closefile(F);
    end else begin {bzw. anhängen}
      AssignFile(F, Filename);
      // Append(F); // <- geht nicht
      Reset(F); // <- Datei wird hier trozdem neu angelegt.
      write(F, FileInfo^);
      Closefile(F);
      end;

  Dispose(FileInfo);
end;
Welche Möglichkeiten habe ich noch ausser Append (geht ohnehin nicht) und Reset?

Wenn jemand Datenbanken-Typen kennt die solche DatenMengen verarbeiten können bitte mal Posten. Weiteres Auswahlpunkt ist man muss sie auch ohne weitere Treiber betreiben können. 1 DLL etc. im Programpath / %systemroot% lasse ich mir auch noch gefallen. Aber eine Aufwendige Installation nicht. Das hast schon seine Gründe.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 19:32
Hallo Kaffekanne
  • Nenne deinen Record nicht TFileInfo - das ist eine vordefinierte Struktur und eine Überdeckung ist nicht sinnvoll.
  • Wundere dich nicht, wenn Append() mit Direktzugriffsdateien nicht funktioniert - Append() ist für Textdateien gedacht.
  • Dann bliebe zu erwähnen, dass Direktzugriffsdateien veraltet sind. Borland rät zur Verwendung von TFileStream. Die Verwendung dieser moderneren Klasse geschieht analog zu untypisierten Dateien.
  • Mit festen Satzgrößen erzielst du eine schlechte Speicherplatzausnutzung, sobald variable Zeichenketten enthalten sind, da der maximale Platzbedarf reserviert werden muss.
  • Wenn du zur optimalen Speicherform deiner Daten beraten werden willst, dann musst du deine Anforderungen etwas systematischer rüber bringen.
Grüße vom marabu
  Mit Zitat antworten Zitat
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#19

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 10. Okt 2005, 23:50
@marabu: Thx für die vielen Tips. Ich werde wohl auf den FileStream umsatteln müssen. Ob das Projekt überhaupt was taugt an dem ich gerade arbeite wird sich erst in ein paar Monaten herausstellen. Übrigens variable Zeichenketten werden nicht verarbeit. Sie haben immer eine feste Grösse. Was ich hier an Code vorgestllet habe ist nur ein kleines programm zum besseren Verständis des Problems und hat nix mit meinem eigendlichen Projekt zutun.

Bratung zur optimalen Speicherform: Eine "richtige" DB wäre nicht schlecht bei dem ich direkt auf das Element / Eintarg zugreifen kann ohe die DB vorher durchsuchen zumüssen. Ferner muss sie wirklich grosse Mengen an Daten verkraften (80 Gig und grösser) und verwalten können sowie eine interne Komprimierung haben. Wer kennst sowas??
  Mit Zitat antworten Zitat
Kanne_Kaffe

Registriert seit: 10. Okt 2005
25 Beiträge
 
#20

Re: Speicherfehler beim Schreiben & Lesen von Records

  Alt 11. Okt 2005, 09:28
Ich habe jetzt mal umgestellt auf FileStream. Nur komischerweise stehe ich vor dem gleichen Problem. Die Datei wird immer wieder überschrieben, statt anzuhängen.
Delphi-Quellcode:
procedure SchreibeDatei2(Filename, Name, Adresse: String; Count: Cardinal);
var
  iTemp: Integer;
begin
  New(FileInfo);
  FileInfo.Name := Name;
  FileInfo.Adresse := Adresse;
  FileInfo.Count := Count;

  TmpStream := TFileStream.Create(Filename, fmCreate);
  TmpStream.Write(FileInfo^, SizeOf(TFileInfo));

  iTemp := TmpStream.Position; // zur kontrolle
  iTemp := TmpStream.Size; // wurde was geschrieben?

  TmpStream.Free;

  Dispose(FileInfo);
end;
Wo ist das Problem? Ich fange langsam an an mir zuzweifeln...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 02:47 Uhr.
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