AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit großer Textdatei

Ein Thema von PeSch · begonnen am 9. Jan 2012 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
PeSch

Registriert seit: 9. Jan 2012
6 Beiträge
 
#1

AW: Problem mit großer Textdatei

  Alt 9. Jan 2012, 18:11
Hallo Leute,


Vielen Dank für die Vielen Antworten, das ging ja blitzschnell .

@K-H:
Vielleicht erstmal zur Erklärung woher das ganze kommt: Also die Anzahl der "Frames" ist mir bekannt, löschen will ich sie erst in einem zweiten Schritt mit einem weiteren Button (aber vielen Dank für den Code, weil ich hab das bis letzte Woche per Hand gemacht, und das ist echt nervig ). Der Ursprung des Ganzen ist eine CAD PIC Plasmasimulation. Diese erzeugt nach jedem Zeitschritt (Frame) eine Tabelle von ca 20*250.000 Positionen und Geschwindigkeiten. In dieser Tabelle sind die Zeitschritte eben durch das Wort "Frame" getrennt. Warum ich die Positionen der ZEILEN wissen möchte: Leider sind nicht alle Frames gleich lang. Nach einer gewissen Zeit verlassen einige der Macropartikel die Numerical Domain der Simulation und somit ändert sich die Anzahl der noch vorhandenen Teilchen pro Frame. Um eine Teilchentrajektorie in der Liste verfolgen zu können muss aber die Länge jedes Frames bekannt sein (= Differenz der Positionsnummern zweier aufeinanderfolgender Frames). Daher der ganze Aufwandt.

@generic:
Programmieren wollte ich das selbst, weil ich dann noch sehr vieles andere im Programm implementieren kann (Analytische Modell etc.) und es kann ja nicht schaden, ein wenig Programmieren zu üben (bin ziemlich eingerostet seit der Schule).

Zurück zur Sache:
@Sir Rufo: Danke schön, werde den Code morgen optimieren.

@Klaus und Bummi:
Das könnte funktionieren, werde ich gleich morgen mal ausprobieren! Vielen Dank! (soweit ich das sehen kann habt ihr ja ziemlich genau das gleiche vorgeschlagen, das wäre denke ich die sauberste Lösung von allen). Ich hatte auch mal überlegt das so ähnlich zu machen (hatte das in der Forumssuche gefunden) war nur nicht ganz sicher ob das Zeilenbehaftet funktioniert, sprich: Zu Beginn hatte ich einen Stream in ein String geladen, da hat er mir aber dann die Zeichenposition gegeben, die ich natürlich nicht gebrauchen kann. Zeilenweise abtasten hört sich sehr gut an.

Ich werds mal ausprobieren und morgen melde ich mich wieder um zu berichten.

Vielen Dank!!!!

P.S.: Was ist eigentlich mit Delphi passiert? Ich hab das viele Jahre nicht gemacht, dann im Studium wieder gebraucht, aber gefunden habe ich nur noch Lazarus. Gibts kein Delphi mehr? Früher gabs doch dieses Personal 6 für Schüler und Studenten kostenlos.

Mit freundlichen Grüßen

Peter
  Mit Zitat antworten Zitat
PeSch

Registriert seit: 9. Jan 2012
6 Beiträge
 
#2

AW: Problem mit großer Textdatei

  Alt 10. Jan 2012, 10:32
Hallo Leute,

Sorry für den Doppel-Post.

Also erstmal Vielen Dank an alle, ihr habt mir sehr geholfen.

Ich habe das Programm nun so abgeändert, wie Klaus und Bummi vorgeschlagen haben und zusätzlich optimiert wie von Sir Rufo vorgeschlagen.

Es funktioniert tadellos und auch recht schnell! Ich habe das Programm dann so erweitert, dass es mir zusätzlich eine neue Datei erstellt, in der nur noch die reinen Daten vorhanden sind und alle Störzeilen wegfallen. Des weiteren erstellt das Programm auch noch eine kleine Datei in der die Intervalllängen eingetragen sind, sodass ich die da ablesen kann.

Dadurch kann ich meine Daten nun grade zu in Fliessbandarbeit auswerten .

VIELEN DANK!!!!


Eine Anmerkung noch: Inc() finde ich überflüssig wie einen Kroppf. Früher ging das einfach via i:=i+1; ...


Eine Frage hätte ich noch:

Was ist denn der gravierende Unterschied zwischen ANSISTRING und STRING? Ich hab hier im Forum irgendwo mal gelesen das wäre nur eine reine Umbennenung in neueren Versionen?!

MfG


Peter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem mit großer Textdatei

  Alt 10. Jan 2012, 10:48
Inc(i) und i:=i+1 ist das Gleiche.
Was der Programmierer nutzt, ist ihm überlassen und der Compiler optimiert am Ende alles in ein INC (Assembler).


String und Char sind keine statischen Datentypen.
Die passen sich an den Compiler die kompilierte Zielumgebung an.
Seit Delphi 2009 ist String=UnicodeString und davor AnsiString.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
PeSch

Registriert seit: 9. Jan 2012
6 Beiträge
 
#4

AW: Problem mit großer Textdatei

  Alt 12. Jan 2012, 12:00
Hallo Leute,

Sorry das ich nochmal stören muss. Das Programm funktioniert tadellos auf meinem 32-Bit Win7 Rechner, sowie auf einem 32-Bit WinXp Rechner. Aus irgendeinem Grund bekomme ich aber auf meinem 64-bit Win7 Rechner folgenden Error: "Invalid Filename". Wenn ich das Programm aus der IDE heraus starte, dann compiliert er das Programm problemlos (wieso auch nicht) und sobald er das Programm dann versucht zu starten kommt dieser Speichererror: "Exception Class SIGSEGV".

Meine Frage: Woran liegt das? Also Comodo Firewall ist aus, AVG Antiviren Software ebenfalls. Schreibschutz der Zieldatei liegt ebenfalls nicht vor.

Ich kann mir das nur mit der Speicherverwaltung von Win7 64Bit erklären, nur weiss ich nicht was ich dagegen machen soll? Das Programm mit Adminrechten zu starten brachte auch keinen Erfolg.

Hat vielleicht jemand eine Idee was die Ursache sein könnte?

MfG

Peter
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.757 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Problem mit großer Textdatei

  Alt 12. Jan 2012, 12:07
Hallo,

ist in dem Dateinamen auch der absolute Pfad enthalten?
Wo liegt die Datei - hast Du eventuell darauf keinen Zugriff?

SIGSEGV - riecht eher nach einem Unix-System als Windows 7
Speicherschutzverletzung - vielleicht als folge der nicht gefundenen Datei??

Grüße
Klaus
Klaus

Geändert von Klaus01 (12. Jan 2012 um 12:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Problem mit großer Textdatei

  Alt 12. Jan 2012, 12:15
SIGSEGV - riecht eher nach einem Unix-System als Windows 7
Speicherschutzverletzung - vielleicht als folge der nicht gefundenen Datei??
Oder anders herum, eine wilde Schreiboperation hat den Dateinamen geschrottet.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
PeSch

Registriert seit: 9. Jan 2012
6 Beiträge
 
#7

AW: Problem mit großer Textdatei

  Alt 12. Jan 2012, 12:42
Hallo,

ist in dem Dateinamen auch der absolute Pfad enthalten?
Wo liegt die Datei - hast Du eventuell darauf keinen Zugriff?

SIGSEGV - riecht eher nach einem Unix-System als Windows 7
Speicherschutzverletzung - vielleicht als folge der nicht gefundenen Datei??

Grüße
Klaus
Dateiname und absoluter Pfad sind vorhanden, es ist im Prinzip alles so wie auf den 32bit Systemen, nur das er hier nicht funktioniert. Diesen Error hatte ich öfters mal, wenn ich die Array Länge (und damit die Speicherplatzzuweisung) nicht vorab im Programm angegeben hatte, ist aber hier nicht der Fall. Zugriff habe ich auch, manuell kann ich die Datei ja auch ohne weiteres bearbeiten. Und andere Programme, bspw. Mathematica von Wolfram können die Datei ja auch ohne weiteres bearbeiten und verwenden.

@K-H:

Sollte eigentlich nicht. Ich habe die Datei nur vom USB Stick in einen Ordner der HD kopiert.

Ein Freund von mir meinte, die Speicherverwaltung von 64bit System sei ganz anders als bei 32bit Systemen. Aber mir ist nicht ganz klar, was genau sich da so restriktiv verhält. Ich meine, im Notfall kann ich auch die Daten auf einem andern Rechner durch meine Programme laufen lassen, ist halt nur recht umständlich.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Problem mit großer Textdatei

  Alt 12. Jan 2012, 12:47
Sollte eigentlich nicht.
Er meinte: Dein Programm hat vermutlich einen Bug/Fehler, welcher sich unter 64 Bit so zeigt, bzw. welcher zufällig bei dir anders auftritt und dabei weniger kaputt macht.

Was sagt denn der Debugger, wie die Variablen kurz vor dem einen Funktionsaufruf aussehn?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 23:50 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