Wetterdaten runterladen als Text geht nicht...

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Wetterdaten runterladen als Text geht nicht...

Beitrag von funkheld »

Hallo, hier gibt es Wetterdaten als Text zum runterladen:
ftp://tgftp.nws.noaa.gov/SL.us008001/DF ... /DS.synop/

Damit geht die Datei nicht runterzuladen:

Code: Alles auswählen

SetCurrentDirectory("data/") 

InitNetwork()

ReceiveHTTPFile("ftp://tgftp.nws.noaa.gov/SL.us008001/DF.an/DC.sflnd/DS.synop/sn.0012.txt", "wetter.txt")

Das Programm läuft zwar, es kommen aber keine Daten in den Ordner "Data".

Gruss
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von Kiffi »

funkheld hat geschrieben:ReceiveHTTPFile("ftp://tgftp.nws....
bitte nach Anfänger verschieben...
a²+b²=mc²
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von funkheld »

Hmmm., schieb mal rüber.
Ich kann es ja nicht mehr löschen...

Danke.

Gruss
Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von Bisonte »

@Kiffi: Ich glaube, funkheld hat deine Antwort nicht verstanden ;)

@funkheld:

Es handelt sich um eine Datei auf einem FTP - Server.
Da kannst Du mit HTTP Befehlen nicht viel ausrichten.

Aber mal nebenbei... was kannst du mit diesen Zahlenkolonnen anfangen ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von funkheld »

Ich habe das Programm "ZornsLemma" welches alle RTTY-Wetter-Daten/Positionen auf einer ausgesuchten Karte darstellt , Wetterbericht von Funkbojen , Schiffspositionen mit Wettermeldungen vom Schiff , Wetterstationen im Land, Flugwetterberichte , Isobaren, Temperatureinfärbung... usw.

Die Daten werden fast alle 10 Minuten aktuell zusammengestellt.

Ist sehr interessant und mein Hobby.


gruss
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von funkheld »

Hmm..., das ist das Verzeichnis : ftp://ftp-outgoing2.dwd.de/gds/OBS/SYN/

Beim Debuggen wird mir angezeigt:
/gds/gds/OBS/SYN

Warum 2x "gds" ?

Finde den Fehler nicht.

Gruss

Code: Alles auswählen

Global ergebnis.s

SetCurrentDirectory("data/") 

InitNetwork()

If OpenFTP(0, "ftp-outgoing2.dwd.de", "gds36967", "IwEEwPNN")
  Debug "geht"
Else
  Debug "geht nicht"
EndIf

SetFTPDirectory(0, "gds")
SetFTPDirectory(0, "OBS")
SetFTPDirectory(0, "SYN")
ergebnis = GetFTPDirectory(0)
Debug ergebnis

ReceiveFTPFile(0, "gda01-synop-201105201516.txt", "synop-daten.txt")

Benutzeravatar
Bisonte
Beiträge: 2476
Registriert: 01.04.2007 20:18

Re: Wetterdaten runterladen als Text geht nicht...

Beitrag von Bisonte »

Hab das mal mit Filezilla angeschaut...

Die Ordnerstruktur ist richtig, allerdings existiert die Datei nicht,
die du runterladen willst...

gda01-synop-201105201702.txt ist die erste momentan.

Ich schätze, dass das aktualisierungstechnisch gelöscht wird um platz für kommende zu machen....
(sonst würd die platte ja ratzfatz voll sein)

Edit:

Ähem... Username und Passwort... öffentlich... hust. Nagut ...

Damit du immer "das erste" File runterladen kannst hier mal ein Denkanstoss....
Die Prozedur GoFTPDir() ist zum einfacheren Wechsel ZU einem Verzeichnis...
Um wieder aus dem Verzeichnis rauszukommen, kannst du dir ja selbst was einfallen lassen ;)

Code: Alles auswählen

InitNetwork()

SetCurrentDirectory("data/") 

Procedure.i GoFTPDir(FTP.i,Directory.s)
  
  Protected i.i, Anz = CountString(Directory,"/")+1

  If Anz>0
    For i=1 To Anz
      If SetFTPDirectory(FTP,StringField(Directory,i,"/")) = 0
        ProcedureReturn #False
      EndIf
    Next i
  EndIf
  
  ProcedureReturn #True
        
EndProcedure

FTP = OpenFTP(#PB_Any, "ftp-outgoing2.dwd.de", "username", "passwort")

If FTP
  If GoFTPDir(FTP,"gds/OBS/SYN")

    NewList FTP_Dir.s()

    If ExamineFTPDirectory(FTP)
      
      While NextFTPDirectoryEntry(FTP)
        AddElement(FTP_Dir())
        FTP_Dir() = FTPDirectoryEntryName(FTP)
      Wend
      
    EndIf

    SortList(FTP_Dir(),#PB_Sort_NoCase)

    FirstElement(FTP_Dir())
    Debug FTP_Dir()
    
    If ReceiveFTPFile(FTP, FTP_Dir(), "wetter.txt")
      Debug "Download ok"
    Else 
      Debug "Irgendein Fehler ist aufgetreten."
    EndIf
    
  EndIf
EndIf
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten