Problem mit ermitteln des Datei namens

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
kaitec
Beiträge: 120
Registriert: 07.11.2005 00:50
Wohnort: Langenselbold
Kontaktdaten:

Problem mit ermitteln des Datei namens

Beitrag von kaitec »

Also ich machs kurz und knap:

Bei folgenem Code habe ich das Problem das der Client hier dem Server sag das er gleich eine Datei sendet, danach dies dann sendet (der Server speichert diese Datei dann unter dem Name savedfile.bss ab), danach fragt der Server wie die eigentlich Datei heißt, dass Problem ist hierbei der Client antwortet mit dem komplette Path!

Code: Alles auswählen

File$ = OpenFileRequester("Datei im Server Verzeichnis speichern","","*.* (*.*)|*.*",0)
            StatusBarText(0, 0, "Mit Server verbunden... ...sende Datei", #PB_StatusBar_Center)
            StatusBarText(0, 1, "Sende...", #PB_StatusBar_Center)
            SendNetworkData(ConnID, "/DATASEND", 2000)
            Delay(200)
            ssnf = SendNetworkFile(ConnID, File$)
            Delay(20)
            If ssnf = 0
            StatusBarText(0, 0, "FEHLER BEIM SENDEN", #PB_StatusBar_Center)
            Delay(1000)
            EndIf
            Delay(100)
            For x=0 To 300
            Delay(100)
            If NetworkClientEvent(ConnID) = 2
            Text.s = Space(2001)
            ReceiveNetworkData(ConnID, text, 2001)
            If text.s = "DATA Name?"
            AddGadgetItem(1,-1,Text)
            Break
            EndIf
            EndIf
            Next
            Delay(200)
            SendNetworkData(ConnID, File$, 2000) ;Hier soll er den Dateinamen dem Server senden!
            Delay(200)
            StatusBarText(0, 0, "Mit Server verbunden...", #PB_StatusBar_Center)
Das geht allerdings nicht weil der Server die Datei wie folgend umbenennt:

Code: Alles auswählen

If Buffer = data3    
Repeat
Delay(5)
Until NetworkServerEvent() = 3 
ReceiveNetworkFile(ClientID, "saveddata.bss")
Delay(500)
SendNetworkData(ClientID, "Transfair complet... reset server...", 2000)
Delay(1000)
SendNetworkData(ClientID, "DATA Name?", 2000)
Delay(50)
For x=0 To 500
Delay(100)
If NetworkServerEvent() = 2
Break
EndIf
Next
buffer.s=Space(2000)
ReceiveNetworkData(NetworkClientID(),@buffer,2000)
buffer.s = RTrim(buffer.s)

If Buffer <> ""
RenameFile("saveddata.bss", buffer.s) ;Hier benennt der Server die Datei um!
EndIf
Delay(500)
SendNetworkData(ClientID, "DATA Renamed ! already ok", 2000)
Delay(500)
SendNetworkData(ClientID, "File is Saved under"+Buffer.s, 2000)

EndIf
Also muss der Client nur den Datei namen z.b. test-datei.txt dem Server schicken!

Und jetzt brauch ich dringent eine Lösung dafür!

Würde mich echt freuen wenn mir jemand schnell helfen könnte!
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

liegt dein bildschirm auf der linken seite, so dass die einrückung immer wieder reinrutscht? :?
..
also du kannst einfach..

Code: Alles auswählen

name$=GetFilePart(File$)
SendNetworkData(ConnID, @name$, Len(name$) )
..machen. dann sendest du das was du senden willst. aber wäre es nicht sowieso besser diesen datei-namen vorher zu senden, und dann erst die datei. dann kannst du sie nämlich gleich unter dem richtigen namen speichern.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
kaitec
Beiträge: 120
Registriert: 07.11.2005 00:50
Wohnort: Langenselbold
Kontaktdaten:

Beitrag von kaitec »

nene...

dann sendet er ja den kompletten Pfad... ...und wenn du dir den Ausschnitt des Server Code's angesehen hast kann man so wohl nicht den ganzen Pfad schicken!
Antworten