Mit FTP-Server verbinden?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Nachtrag.

Man sollte nicht vergessen FTPClose(hConnect) auszuführen da sonst irgendwann man keine Verbindung aufbauen kann. Zu viele Verbindungen von den gleichen User verhindert der Server.

Code: Alles auswählen

; Test Beispiel

Global NewList Files.FIND_DATA()

hInternet = FTPInit()
If hInternet = 0
  Debug "Error Init: " + FormatMessage(GetLastError_())
  
  End
EndIf

hConnect = FTPConnect(hInternet, "ftp.avm.de", "", "")

If hConnect = 0
  Debug "Error Connet: " + FormatMessage(GetLastError_())
  
  End
EndIf

If FTPListDir(hConnect, "", Files()) = 0
  Debug FormatMessage(GetLastError_())
  FTPClose(hConnect)
  FTPClose(hInternet)
  End  
EndIf

ForEach Files()
  With Files()
    If \dwFileAttributes & #FILE_ATTRIBUTE_DIRECTORY = #FILE_ATTRIBUTE_DIRECTORY
      Debug "[" + \cFileName + "]"
    Else
      Debug \cFileName
    EndIf
  EndWith
Next

Debug FTPClose(hConnect)
Debug FTPClose(hInternet)
FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

@ts-soft

In der Strukture WIN32_FIND_DATA ist cFilename als Char .c[260] und cAlternate als Char c[14] deklariert.
Diese ist einmal falsch bei UNICODE und es lässt sich besser verarbeiten.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Diese ist einmal falsch bei UNICODE
Das stimmt nicht. aber ansonsten haste vielleicht recht :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Debug SizeOf(WIN32_FIND_DATA)

Normal : 320 Byte
Unicode: 594 Byte

Großes Fragezeichen? Gehen aber beide Richtig.

cFilename.s{260} braucht man aber kein Peeks()

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Großes Fragezeichen? Gehen aber beide Richtig.
Ist doch korrekt, unter Unicode hat jedes Char (.c) 2 Bytes. Es werden ja
Chars ausgelesen, nicht Bytes :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Ist Klar :roll:

Habe nur keine FtpFindFirstFileW(...) gefunden. Fragt sich nur wann welche Struktur gültig ist.
Ist aber auch egal. Macht der Compiler für uns.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

PSDK hat geschrieben:Implemented as FtpFindFirstFileW (Unicode) and FtpFindFirstFileA (ANSI). Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode.
Wo hast Du geguckt?

Den richtigen API Aufruf erledigt PB, den Rest macht Windows
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Erstmal: DANKE für die Antworten! :allright:
BildBildBildBild
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Jetzt fehlen eigentlich nur noch 'FTPDownloadProgress()' und 'FTPUploadProgress()' und ich kann meine bisherige FTP-Library wegschmeißen und eure nehmen. :wink:
Für den Titel 'PB FTP Hero' müsstet ihr dann lediglich noch die "Kleinigkeit" von 'SFtp' einbauen. :mrgreen:
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Thorsten1867 hat geschrieben:Jetzt fehlen eigentlich nur noch 'FTPDownloadProgress()' und 'FTPUploadProgress()' und ich kann meine bisherige FTP-Library wegschmeißen und eure nehmen. :wink:
Für den Titel 'PB FTP Hero' müsstet ihr dann lediglich noch die "Kleinigkeit" von 'SFtp' einbauen. :mrgreen:
http://www.purebasic.fr/english/viewtopic.php?t=25662
Dort siehste das benötigte Callback, ich hatte bisher keinen Bedarf für sowas,
kannste aber gerne Einbauen, dann wird das hier vielleicht ja noch doch eine
vollständige FTP_ Include/Lib :wink:
Interessant ist aber auch die Variante von DarkDragon, da das auch unter
Linux funktioniert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten