Xbase + FTP

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
ab-software
UDF-Programmierer
UDF-Programmierer
Beiträge: 51
Registriert: Di, 18. Okt 2005 12:35
Wohnort: 41747 Viersen
Kontaktdaten:

Xbase + FTP

Beitrag von ab-software »

Hallo,

da ich am Samstag mit erschrecken festgestellt habe das die XbFTP.dll von Phil Ides mit dem IE7 (bzw. der neuen wininet.dll) nicht mehr zusammenarbeitet frage ich mich wie ich nun den FTP Zugriff mit meinem Programmen realisiere und solche Pannen in Zukunft weitmöglichst ausschließen kann.

Möglichkeit eins wäre die alte Wininet.dll einfach mit der Software auszuliefern. Darf ich das überhaupt? Oder verstoße ich da gegen irgendwelche Copyright Rechte ?

Möglichkeit Zwei wäre die Xbase FTP Klasse zu benutzen , leider bietet die mir (zumindest laut Dokumentation) keine Directory Funktion die ich dringend benötige? Gibt es da die Möglichkeit nicht oder ist die nur nicht dokumentiert und greift Alaska auch auf die Windows DLL zurück

Möglichkeit Drei wäre eine komplett eigene FTP Klasse zu entwickeln was mit Sicherheit eine Menge arbeit wäre, die sich aber wohl aus Kompatibilitätsgründen vielleicht irgendwann mal lohnt. Hat jemand von euch sich damit schonmal genauer beschäftigt??

Zuwas würdet ihr mir raten?

Vielen Dank schonmal
Zuletzt geändert von ab-software am Do, 25. Jan 2007 10:05, insgesamt 1-mal geändert.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Ari,
der Wolfgang Ciriack und der Tom hier aus dem Forum machen das mit Xb2.NET - sie können Dir da sicher weiterhelfen...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Es gibt zwei Möglichkeiten, nämlich einmal die ziemlich komfortable FTP-Library von Marshallsoft:

http://www.marshallsoft.com/

oder das von Martin erwähnte Xb2.Net. Die Marshallsoft-Libraries nutze ich schon seit sechs Jahren; sie sind kompakt und schnell. Xb2.Net ist mächtiger, aber ein wenig komplizierter.
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Beitrag von Wolfgang Ciriack »

Ich habe das gerade von Phil Ides XbFTP auf Xb2.Net umgestellt, da ich Xb2.net sowieso wegen Socket-Kommunikation mit Fahrzeugwaage im Einsatz habe. Wenn du da etwas Quellcode benötigst, melde dich.
Viele Grüße
Wolfgang
thomas
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Fr, 23. Sep 2005 16:07
Wohnort: Bad Oldesloe
Kontaktdaten:

Beitrag von thomas »

Hallo Wolfgang.

Auch ich habe gerade von Phil Ides XbFTP auf Xb2.Net umgestellt und es ging relativ einfach.
Ich würde nur gerne wissen, wie du das mit der Forschrittsanzeige (Callback) gelöst hast.
Zur Zeit teste ich gerade meine neue FTP-Classe und habe festgestellt, das die Methode Dicretory
ein Array mit den Dateien als String zurückliefert und zwar je nach FTP-Server mit einem unterschiedlichen
Format. Wie kann ich da nun eindeutig die Eigenschaften der Dateien feststellen, also Größe – Datum –
Zeit-Dateiname-Attribute? Eigentlich hatte ich vor, die neue FTP-Classe mit der XbFTP-Classe kompatible
zu halten. Es fehlen mir noch die Umsetzung folgender Methode:
METHOD XbFTP:directory(lSorted, cSpec)
METHOD XbFTP:sendFile( cLocalFile, cRemoteFile, bCallBack, nReTries )
METHOD XbFTP:recvFile( cRemoteFile, cLocalFile, bCallBack, nRetries )

Übrigens:
Kennt man schon die genaue Ursache, warum die Classe von Phil mit der neuen wininet.dll nicht mehr funktioniert.

Gruß

Thomas
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Hallo Leute,
Thomas hat geschrieben:Übrigens:
Kennt man schon die genaue Ursache, warum die Classe von Phil mit der neuen wininet.dll nicht mehr funktioniert.
Und noch zuvor, welche Fehlersymptome treten auf? Gibt es error logs, die auf bestimmte Funktionsaufrufe aus der wininet.dll hindeuten?

Viele Grüße,
Günter
ab-software
UDF-Programmierer
UDF-Programmierer
Beiträge: 51
Registriert: Di, 18. Okt 2005 12:35
Wohnort: 41747 Viersen
Kontaktdaten:

Beitrag von ab-software »

Habe mich dazu entschieden erstmal die Klasse von MarshallSoft dafür zu nehmen , das ganze ist sauber dokumentiert und funktioniert auf allen OS Problem los.

Zu der Klasse von Phil kann ich nur sagen das bei mir keinerlei Fehler auftraten die Verbindung nur einfach nicht mehr hergestellt werden konnte.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

und der Tom hier aus dem Forum machen das mit Xb2.NET
Ich habe Xb2.Net benutzt, um einen FTP-Server zu entwickeln, die Clients sind mit Marshallsoft entstanden.
Herzlich,
Tom
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Hallo Leute,

hier eine Möglichkeit, das Connect-Problem von Phils FTP-Klasse im Zusammenhang mit IE7 zu beheben. Offenbar ist Wininet Version 7.x pingeliger bei der Parameterprüfung.

In XbFTP.prg ersetze man

Code: Alles auswählen

Zeile 128:   nProxyMode := 1+iif(Empty(::proxy),2,0)
Zeile 129:   nHnd := DllExecuteCall( cTpl, cUserAgent, nProxyMode, ::proxy, "", 1 )

durch

nProxyMode := 1+iif( Empty( ::proxy ), 0, 2 )
nHnd := DllExecuteCall( cTpl, cUserAgent, nProxyMode,;
            iif( Empty( ::proxy ), 0, ::proxy ), 0, 1 )

Viele Grüße,
Günter
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Günter,

danke da werden sich einige Leute freuen, könntest du da auch im Alaska Forum posten, eventuell auch an Phil direkt. Da gibt es eine Menge anfragen zu dem Thema.
Gruß
Hubert
Günter Beyes
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 315
Registriert: Mo, 16. Okt 2006 13:04
Wohnort: Region Stuttgart

Beitrag von Günter Beyes »

Schon erledigt. Phil scheint aber mal wieder abgetaucht zu sein :wink:
Antworten