Seite 1 von 1

Ungültiger Speicherzugriff

Verfasst: 02.06.2010 19:23
von babelfish
Hallo Mac'ler und/oder PB'ler

Ich hab ein Programm geschrieben (Kundenverwaltung - Rechnungen anlegen etc.) welches unter Windows schon sehr gut läuft.
Blöderweise (oder auch nicht *g*) hab ich mich entschieden auf Mac umzusteigen.

Gut ... einige Miniprogramme (Kontrolle, Statistik etc.) funktionieren nach kleinen Änderungen.

Das Hauptprogramm (ohne Includes etwa 1600 Zeilen) macht mir Probleme...

In verschiedenen Programmteilen bekomme ich "Error - Ungültiger Speicherzugriff"

Beispielsweise:

Code: Alles auswählen

If EventGadget() = #map
						Define mapstrasse$	= GetGadgetText(#Strasse)
						Define mapstrassenr$	= GetGadgetText(#Nr)
						Define mapplz$		= GetGadgetText(#PLZ)
						Define maport$		= GetGadgetText(#Ort)
						textfuerurl$ = mapstrasse$+"+"+mapstrassenr$+"+"+mapplz$+"+"+maport$
						;Define Uebergabeadresse$ = umlaute(textfuerurl$)
								textfuerurl$ = ReplaceString(textfuerurl$,"ä","ae")
								textfuerurl$ = ReplaceString(textfuerurl$,"Ä","ae")
								textfuerurl$ = ReplaceString(textfuerurl$,"ü","ue")
								textfuerurl$ = ReplaceString(textfuerurl$,"Ü","ue")
								textfuerurl$ = ReplaceString(textfuerurl$,"ö","oe")
								textfuerurl$ = ReplaceString(textfuerurl$,"Ö","oe")
								textfuerurl$ = ReplaceString(textfuerurl$,"ß","ss")
						url$ = "http://maps.google.at/maps?f=q&hl=de&geocode=&q="
						url$ + textfuerurl$	;Uebergabeadresse$
						url$ + "&mrt=all&sll=48.22299,14.021778&sspn=0.008949,0.017016&ie=UTF8&z=19&iwloc=addr"
						RunProgram("open",url$,"")
EndIf
Hier bei RunProgram(...)

Der Teil hilft mir den Kunden zu lokalisieren und mich eventuell an Sachen zu erinnern welche ich nicht notiert habe...
Zur Info: Bin Rauchfangkehrer- bzw. Schornsteinfegermeister mit langer(25 Jahre) EDV-Geschichte *g*.
Und hier wird eben das Kundenhaus in Google-Maps angezeigt.

Die Umlautgeschichte hatte ich bis vor kurzem in einer prozedur... da kam es wenn ich eben diese aufgerufen hatte.

Frage 1: den Fehler vermute ich wo anders... Was alles kann diesen Fehler verursachen?
Frage 2: Was bedeutet der Fehler eigentlich im Hintergrund?
Frage 3: Ist das Programm gar zu gross? Zuviele Variablen benutzt? (was ich mir nicht vorstellen kann)

Danke im voraus.

Re: Ungültiger Speicherzugriff

Verfasst: 02.06.2010 19:42
von babelfish
hab grad ein wenig herumgesucht.

Der Fehler wurde mal mit DIM und mit Gotos in Select/Case in Verbindung gebracht.

Gotos in Select/Case hab ich ein paar - aber die sind hier nicht betroffen...
Ich werd das mal auf If umbauen - und hoffe auf Erfolg - und/oder in der zwischenzeit Infos von euch...

Re: Ungültiger Speicherzugriff

Verfasst: 02.06.2010 21:24
von babelfish
Ok - alle Select/Case auf if/elseif umgebaut...

Same sh... again.

Re: Ungültiger Speicherzugriff

Verfasst: 19.06.2010 09:11
von babelfish
Problem gelöst...

Ich habe einige Zeilen verbessert

Zb. Schnipsel:

Code: Alles auswählen

query$ = "select * from..."
query$ + "where ..."
auf eine Zeile zusammenkopiert.

Einige andere Optimierungen erledigt und nun klappt es.
Erklärung hab ich keine da es ja nur Optimierungen waren und nicht Fehlerbereinigung...

Naja - ich schliesse diesen Threat.
Ausgenommen es kann mir das jemand erklären.

Re: Ungültiger Speicherzugriff

Verfasst: 19.06.2010 13:28
von freak
Das klingt sehr danach das hier irgendwo Speicher überschrieben wird der nicht beschrieben werden soll, was dann später erst zum Fehler führt. Es kann durchaus vorkommen das so ein Fehler unter Windows unbemerkt bleibt und unter einem anderen OS Probleme macht.

Die 'Purifier'-Option aus PB 4.50 kann solch einen Fehler eventuell finden.

Re: Ungültiger Speicherzugriff

Verfasst: 19.06.2010 19:29
von babelfish
Danke - habe 4.5 erst seit gestern - ich gehörte zu den DTP-Geschädigten *g*

Purifier - muss ich erst mal gucken...

Re: Ungültiger Speicherzugriff

Verfasst: 20.06.2010 17:14
von babelfish
Purifier hat mir gezeigt das ich... naja :oops: - ziemliche sch...e gebaut hatte.

Die Verbesserungen die ich eingebaut habe waren mehr als Optimierungen... :roll:

Alleine die richtige Event-Behandlung hat vieles bewirkt - das alte Programm lief ständig alle Abfragen durch statt zu warten auf ein Event welches auch was bewirkt...
Eine Mausbewegung im Fenster hat schon eine Vielzahl von Abfragen ausgelöst...

Purifier = :allright:

Danke an das PB-Team!!!!

Re: Ungültiger Speicherzugriff

Verfasst: 21.06.2010 17:47
von Blackskyliner
Hier übrigens noch den Verweis auf die Funktionsweise, übersetzt von mir ins Deutsche: http://www.purewiki.xthost.net/index.php?title=Purifier

Hoffe es ist keine belästigende Werbung :)