AGB  ·  Datenschutz  ·  Impressum  







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

File Access: EAccessViolation

Ein Thema von Hirnsausen · begonnen am 10. Jan 2007 · letzter Beitrag vom 13. Jan 2007
Antwort Antwort
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: File Access: EAccessViolation

  Alt 11. Jan 2007, 10:44
So, ich hab mal kurz drübergeschaut. Aber aufgrund fehlender Zeit konnte ich nicht viel machen.

1. "Application.Terminate": das ist wie aus dem fahrenden Auto springen. Einfach das Hautpformular schließen ist schöner (so mit anhalten, Motor aus, aussteigen und abschließen) --> Application.terminate durch einfaches "close" ersetzen.

so und jetzt zu deiner Funktion
2.1. Der Fehler tritt bei WerteAlt[0]='0' auf. WerteAlt ist ein TStringDynArray (also array of string), also ein dynamisches Array. Schau dir an, wie dynamische arrays funktionieren (mit: setlength, finalize, copy). Fürs erste reicht es davor ein "setlength(WerteAlt,1);" zu setzen.
2.2. Dann ist er bei mir rausgeflogen bei "strtofloat(Werteneu[0])". Das lag daran, dass er bei mir als Dezimaltrennzeichen ein "," erwartet hat und nur einen "." finden konnte (also mit dem Punkt nix anzufangen wusste). Hier kann man mit TFormatsettings was machen.
2.3. Das nächste Problem liegt hier WerteAlt:=WerteNeu funktioniert nicht so, wie du es willst. Das sind beides dynamische arrays, also in erster Instanz nur Zeiger. Du kopierst also nur die Adresse aber nicht den Inhalt (ist wie, als würdest du deinem Kunpel alle deine Möbel schenken wollen, stattdessen ziehst du bei ihm ein). Mach mal so: "WerteAlt:=copy(WerteNeu)"

Soviel zu den offensichtlichen Dingen

Jetzt willst du noch Werte sortieren. Dann mach die mal mit TStringList vertraut (inkl Loadfromfile).

Was du mit Werte errechnen meinst, weis ich nicht.

Noch etwas: Es wäre nicht schlecht wenn du die Funktion aus dem Timer in einen eigenen Thread legen könntest (such mal nach TThread).

Mehr will ich nicht meckern
Nur bei manchen Sachen hab ich mir gedacht, dass man die PRogrammierweise nochmal näher durchleuchten sollte. Mir fehlt aber die Zeit.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  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 17:58 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