| |
|
|
Martin Kempf | Ich lasse diesen Code in einer Schleife laufen und einen Schwung Abfragen übers Netz durchführen:
ElseIf @MenuItem(3484)'Test
if val(SolarSystemID$) > 0
hGrid& = @create("Grid",8,0)
angzeilen& = GetLines(OLView&)
whileloop angzeilen&
GetItemText(OLview&, bereich#, 5,&Loop)
Prim$ = @Trim$(string$(bereich#,0))'PrimKey
X$ = "SELECT MWert2 from MAT WHERE MTyp = 'O' AND MKey = '"+Prim$+"'"'TypID holen
clearlist
i% = @db("fbSQLExec", ep&, X$, hGrid&)
if i% > 0'TypID gefunden.
Y$ = GetText$(hGrid&,0,0)
if val(Y$) > 0
Url$ = "https://api.eve-central.com/api/quicklook?typeid=" + Y$ +"&usesystem="+SolarsystemID$
i% = downloadfile(Url$, "TMP.TXT")
if i% > 0
clear x&
while %loading
x& = &bytesread
endwhile
endif
endif
endif
endwhile
endif
Jetzt stürzt mir der Interpreter (oder auch die Exe) zu unterschiedlichen Zeitpunkten bei der Ausführung des Codes innerhalb der while %loading Schleife ab, nachdem der Download erfolgreich gestartet wurde und nur ne kleine Textdatei zurückkommt. Was könnte die Ursache sein? |
|
|
| |
|
|
|
| Probiere mal diese Funktion:
(ungetestet hier in den Editor geschrieben)
und ersetze Dein:
in:
dwget("https://api.eve-central.com/api/quicklook?typeid=" + Y$ +"&usesystem="+SolarsystemID$,"tmp.exe")
|
|
|
| |
|
|
|
Martin Kempf | das nenn ich ne prompte Hilfe: danke dafür. Das scheint die Lösung zu sein - ich bekomm jetzt keinen Fehler mehr. Und es reicht völlig aus, wenn ich in die <while %loading> Schleife das <waitinput 50> einfüge, mehr muss ich am Code nicht ändern. Nur verrat mir mal, was <waitinput 50> eigentlich macht? Und hab ich da was in der XProfan-Hilfe nicht gefunden? |
|
|
| |
|
|
|
| Ca. 50ms warten und Threads Zeit geben.
Da hier ein Absturz sonst folgt, nehme ich an, dass Roland die Kommunikation mit seinem Download-Thread nicht wirklich threadsicher programmiert hat. (hatte ich aber schon einmal festgestellt) |
|
|
| |
|
|
|
| Habs wieder gefunden, ist von 11/2014: [...] |
|
|
| |
|
|