| |
|
|
- Seite 1 - |
|
Georg Hovenbitzer | Hallo zusammen,
in meinem Programm ziehe ich mir Dateien per HTML runter, bis dato habe ich es immer mit der URLMON.DLL gemacht: UrlDownLoad(0,@Addr(GetPfad$),@Addr(SaveDatei$),0,0) Dies reichte mir vollkommen aus, nur stelle ich im Moment fest, dass es Links gibt wo folgender Fehler kommt: -2147221020 The address of this site is not valid. Check the address and try again.
Z.B. bei: link illegal und entfernt
Mit der download.pcu von If und per Browser klappt der Download
Da ich das Programm aber gerne mit Profan2CPP übersetzen möchte, ist die PCU keine Lösung für mich.
Hat jemand einen Tip woran es liegen kann und gibt es noch andere Möglichkeiten für den Download. Ach ja, mit DoFileDownload aus der shdocvw.dll habe ich es auch versucht, führt aber unter XP zu einem Rechteproblem. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Georg Hovenbitzer | Ich habe mal ein Demo gebaut: KompilierenMarkierenSeparierenDeclare Get$
Declare Put$
Declare Error&
Get$ = --- kommt ein neuer, damit es keine Ärger gibt ---
Put$ = "D:\Test1.txt"
Error& = @External("urlmon.dll","URLDownloadToFileA",0,@Addr(Get$),@Addr(Put$),0,0)
Print Error&
WaitInput
Get$ = "https://www.google.de/intl/de_de/images/logo.gif"
Put$ = "D:\Test2.txt"
Error& = @External("urlmon.dll","URLDownloadToFileA",0,@Addr(Get$),@Addr(Put$),0,0)
Print Error&
WaitInput
End
Die erste Datei wird nicht gezogen, die zweite schon. Ich habe ein Demo in VB6 gefunden, die nichts anderes macht als ich und in diesem wird auch die erste Datei gesaugt.
Kann es sein, dass das große HTTP im Link stört oder muss man den Link Umwandeln und wenn ja in was
Über jeden Tip bin ich dankbar. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
| Nun auf jeden Fall sehe ich nicht das Du den Cache leerst vor dem Download. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Georg Hovenbitzer | Hi iF,
was hat der Cache damit zu tun
Der Fehler Code ist ja -2147221020, The address of this site is not valid. Check the address and try again, hört sich nach einem Linkfehler an, dieser klappt also. Daher die Frage ob er umgewandelt werden muss ?! |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
Georg Hovenbitzer | Danke iF,
geht aber leider auch nicht nach dem Löschen des Cachs, gleicher Fehler.
Das muss doch gehen, ich habe im Internet auch nichts gefunden was dagegen spricht. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
| [quote:8eeb58dfe0]was hat der Cache damit zu tun gruebel [/quote:8eeb58dfe0] Urldownloadtofile läd nur wenn das File nicht bereits im Cache liegt.
Drum entleere erst den Cache und schau ob die Fehlernummer gleich bleibt.
Zur Umwandlung: Du kannst die URL umwandeln indem Du die Hexcodes der Chars im String geführt von einem Prozentzeichen hintereinander schreibst. Bei diesen sonderzeichen in Deiner Url wäre das auch empfehlenswert.
Aus dem Freizeichen wird dann z.B. %20, und aus dem grossen A ein %41 usw.usw... |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo iF,
Cache Löschen eingebaut und auch mal mit der Umwandlung probiert, aber leider geht es immer noch nicht.
Aber, wenn man den Code mit Profan2CPP übersetzt klappt alles Also eher ein Profan internes Problem.
Witzig ist, wenn man wie ich es muss, in den Cpp Code die von Sebastian vorgegebenen Define Einträge macht, klappt es mit der ersten Datei nicht mehr, aber mit der zweiten.
Profan und Profan2CPP haben dann die gleichen Probleme mit der gleichen Fehlernummer. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
Clemens Meier | Was mir auffällt ist, dass die erste URL Leerzeichen enthält. Man sollte grundsätzlich URLs, von denen man nicht 100% weiss, dass sie korrekt sind, durch einen Encode jagen, bevor man sie benutzt. Anbei zwei Prozeduren. Die 1. kodiert den Pfad (Pfad vorher von der Domain trennen), die 2. ist eine Hilfsprozedur. Probiere es also mal damit. KompilierenMarkierenSeparieren
PROC URLPathEncode
Parameters string$
declare i&,char%,urlpathencode$
urlpathencode$ = string$
WhileLoop len(urlpathencode$),1,-1
char% = ord(mid$(urlpathencode$,&loop,1))
if ((char%>96) AND (char%<123))
elseif ((char%>47) AND (char%<58))
elseif ((char%>64) AND (char%<91))
elseif ((char%>44) AND (char%<48))
elseif (char% = 95)
elseif (char% = 126)
elseif (char% = 38)
elseif (char% = 58)
elseif (char% = 63)
elseif (char% = 64)
elseif (char% = 35)
elseif (char% = 33)
elseif (char% = 36)
elseif (char% = 42)
elseif (char% = 43)
else
if (&loop=1)
urlencode$ = "%" + hexx(char%) + mid$(urlencode$,&loop+1,len(urlencode$))
elseif (&loop=len(urlencode$))
urlencode$ = left$(urlencode$,&loop-1) + "%" + hexx(char%)
else
urlencode$ = left$(urlencode$,&loop-1) + "%" + hexx(char%) + mid$(urlencode$,&loop+1,len(urlencode$))
endif
endif
Wend
return urlpathencode$
ENDPROC
PROC hexx
Parameters zahl&
if (zahl&>15)
return hex$(zahl&)
else
return "0"+hex$(zahl&)
endif
ENDPROC
P.S. Ich bin offenbar blind. Wo sind da Leerzeichen. Habe doch glatt die Punkte übersehen. Dennoch lohnt es sich, Pfade zu kodieren. Meines Wissens nach macht dies die urlmon nämlich nicht und bei einem Zugriff auf einem ix-Server kommt es zu Fehlermeldungen. |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Clemens,
danke für den Code (ich hatte es radikaler gemacht und alles umgewandelt), aber leider gibt es dadurch keine Veränderung. Da es in der URL auch keine Zeichen gibt die umgewandelt werden müssten. Ich würde sagen, dies ist ein Problem von Profan selbst, da es in CPP übersetzt ja alles klappt. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|
|
| @Georg: Aber mal was Anderes - der Torrentlink ist illegal?!?! Wenn ja, entferne den - auch aus dem Source!
Ich will hier keine Links zu Dingen welche lt. Nutzungsbedingungen ausdrücklich verboten sind.
Ich möchte auch keine Diskussion. Wenn der Link legal ist, dann kannst Du ihn natürlich einfach belassen - aber begründe kurz warum.
Danke! |
|
|
| |
|
|
|
RGH | [quote:3398313431=Georg Hovenbitzer]Ich würde sagen, dies ist ein Problem von Profan selbst, da es in CPP übersetzt ja alles klappt.[/quote:3398313431] Wohl kaum! Bei mir läuft Dein Demo aus dem 2. Post unverändert völlig fehlerfrei und lädt beide Dateien! (XProfan 10ß, 11. Subscriptionslieferung)
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 24.05.2006 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
Georg Hovenbitzer | @if: Ich habe den Link entfernt, hatte darüber nicht weiter nachgedacht, da ich nur einen langen Link zum Test brauchte.
@Roland: Dank dir für den Test, wenn es dir möglich ist wäre es nett es mit 9.1 mal zu versuchen. Ich habe mal zum Test den Verzeichnisbaum mit Groß- und Kleinschreibung und dem langen Dateinamen auf meiner Domain nachgestellt, da klappt es dann mit dem Download. Keine Ahnung woran dies liegt, wie gesagt in CPP übersetzt klappt es mit allen Servern. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 24.05.2006 ▲ |
|
|
|