Seite 2 von 2

Verfasst: 19.02.2009 23:06
von Kiffi
muss in empfangen$ nicht der komplette Pfad (also mit Dateiname) stehen,
unter dem die Datei gespeichert werden soll?

Code: Alles auswählen

empfangen$ = "C:\Dokumente und Einstellungen\Bussi\Eigene Dateien\Dosch\meineDatei.jpg"
Grüße ... Kiffi

Verfasst: 19.02.2009 23:11
von Sunny
Das war das Problem!!!

Vielen Dank... :)

Ich werde dir zu ehren ein Denkmal errichten. :D

Hat alles geklappt...
Dankeschööön...

(Ich bin aber auch manchmal blind...)

Verfasst: 19.02.2009 23:19
von Kiffi
Sunny hat geschrieben:Hat alles geklappt...
Dankeschööön...
kein Problem (war eigentlich auch nur geraten :mrgreen:)

Allerdings wirst Du nun ein anderes Problem haben: Du müsstest
korrekterweise vorher auch noch den auf der Clientseite ausgewählten
Dateinamen mit übermitteln, damit Du weißt, von welchem Format das Bild
ist (kann man ja im Client auswählen).

Des weiteren ist vom PB-Team angekündigt worden, dass in neueren
Versionen SendNetworkFile() und ReceiveNetworkFile() ersatzlos gestrichen
werden. Spätestens dann müsstest Du Dich mit SendNetworkData() und
ReceiveNetworkData() auseinandersetzen.

Grüße ... Kiffi

Verfasst: 20.02.2009 00:39
von Sunny
Des weiteren ist vom PB-Team angekündigt worden, dass in neueren
Versionen SendNetworkFile() und ReceiveNetworkFile() ersatzlos gestrichen
werden. Spätestens dann müsstest Du Dich mit SendNetworkData() und
ReceiveNetworkData() auseinandersetzen.
:shock: Na super... ich komm ja mit SendNetworkFile() und ReceiveNetworkFile() schon kaum zurecht. Was soll das dann erst werden.

Naja, so lange bin ich noch nicht dabei mit PureBasic rum zu werkeln und ich werd mich in nächster Zeit sowieso etwas mehr mit der Materie vertraut machen.

Wo ich schonmal dabei bin...

Wenn man die Beiden Codes von Client und Server etwas abändert, müsste es doch möglich sein, alle Bilder vom Laufwerk C: in einen Ordner von Laufwerk D: zu bekommen...
Sowas stelle ich mir ziemlich praktisch vor, wie müsste man die Codes denn dafür abändern???
Also, ich würde mal sagen, erstmal müsste man in den Client ne Suchfunktion einbauen und dann jedes gefundene Bild zum Server senden oder?
Wie würden denn die Codes dafür aussehen???
Und wie gehts dann weiter???

Verfasst: 22.02.2009 20:45
von Sunny
Also der Client müsste ja eigentlich ne Mischung aus dem Code

Client:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Netzwerk konnt nicht initialisiert werden!", 0)
  End
EndIf

Port = 6832

versenden$ = "C:\abc.jpg"
If versenden$
 

ConnectionID = OpenNetworkConnection("127.0.0.1", Port)
If ConnectionID

 
  If SendNetworkFile(ConnectionID, versenden$)
  MessageRequester("PureBasic - Server", "Es wurde eine Datei versendet!", 0)
  Else
  MessageRequester("PureBasic - Server", "Es wurde leider keine Datei versendet!", 0)
  EndIf 
 
 
  CloseNetworkConnection(ConnectionID)
Else
  MessageRequester("PureBasic - Client", "Server konnte nicht gefunden werden!", 0)
EndIf
EndIf
 
End 
und dem Code sein

Scanner:

Code: Alles auswählen

Procedure sucheDateien(pfad.s, Liste.s(), typ.s="png,gif,bmp,jpg")

   PathAddBackslash_(@pfad)
   
   Protected dir=ExamineDirectory(#PB_Any, pfad, ""), n
   
   If dir
   
      While NextDirectoryEntry(dir)
     
         If DirectoryEntryType(dir) = #PB_DirectoryEntry_File
         
            For n=1 To CountString(typ, ",")+1
           
               If StringField(typ, n, ",") = LCase(GetExtensionPart(DirectoryEntryName(dir)))
                  AddElement(Liste())
                  Liste()=pfad+DirectoryEntryName(dir)
                  Break
               EndIf
               
            Next
           
            Continue
           
         ElseIf DirectoryEntryName(dir) <> "." And DirectoryEntryName(dir) <> ".."
         
            sucheDateien(pfad+DirectoryEntryName(dir), Liste(), typ)
           
         EndIf
         
      Wend
     
      FinishDirectory(dir)
     
   EndIf
   
EndProcedure

NewList MeineDateien.s()

OpenWindow(0, 0, 0, 600, 400, "Dateien", #PB_Window_SystemMenu)
  CreateGadgetList(WindowID(0))
    ButtonGadget(0, WindowWidth(0)-105, 5, 100, 20, "Auflisten")
    StringGadget(1,                  5, 5, 485, 20, "C:\")
    ListViewGadget(2,                5,30, 590, 365)
   
Repeat
 
  Event = WaitWindowEvent()
  Gadget= EventGadget()
 
  If Event = #PB_Event_Gadget
   
    If Gadget = 0
      sucheDateien(GetGadgetText(1), MeineDateien())

      ForEach MeineDateien()
     
        AddGadgetItem(2, -1, MeineDateien())
       
      Next
     
      AddGadgetItem(2, -1, StrQ(CountList(MeineDateien()))+" Dateien gefunden")
     
    EndIf
   
  EndIf
 
Until Event = #PB_Event_CloseWindow
End
und außerdem müsste der Server noch etwas abgewandelt werden

Server:

Code: Alles auswählen

If InitNetwork() = 0
  MessageRequester("Error", "Netzwerk konnt nicht initialisiert werden!", 0)
  End
EndIf

Port = 6832
empfangen$ = "C:\Dokumente und Einstellungen\Bussi\Eigene Dateien\Dosch\mau.jpg"

If CreateNetworkServer(0, Port)

  MessageRequester("PureBasic - Server", "Server erstellt (Port "+Str(Port)+").", 0)
 
  Repeat
     
    SEvent = NetworkServerEvent()
 
    If SEvent
   
      ClientID = EventClient()
        
        If ReceiveNetworkFile(ClientID, empfangen$)
        MessageRequester("PureBasic - Server", "Es wurde eine Datei empfangen!", 0)
        Else
        MessageRequester("PureBasic - Server", "Es wurde leider keine Datei empfangen!", 0)
        EndIf
        Quit = 1
        
    EndIf
   
  Until Quit = 1
 
  MessageRequester("PureBasic - Server", "Klicke auf 'OK', um die Verbindung zum Server zu beenden.", 0)
 
  CloseNetworkServer(0)
Else
  MessageRequester("Error", "Server konnte nicht erstellt werden!", 0)
EndIf

 
End
Aber wie genau bringe ich den Client und den Scanner zusammen und was muss ich am Server abändern?
Oder gibts da vieleicht ne einfachere Methode???