Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
kackb00n_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 07.12.2007
Beiträge: 42

Dateien durchnummerieren ohne überschreiben!
Verfasst am: 20.12.2007, 10:13

Hallo!

Ich möchte ein screenshot geschickt bekomenn per Winsock.
Das funktioniert ganz gut!
Nur dass die datei immer größer wird, da die bytes von dem neuen screenshot einfach angehängt werden Sad
Also möchte ich die irgendwie durch nummerieren.
Also ungefähr so :

App.Path & "/downloads/" & "pic_" & Winsock1.RemoteHostIP & "1" & ".bmp"

Danach halt irgendwie per code

App.Path & "/downloads/" & "pic_" & Winsock1.RemoteHostIP & "2" & ".bmp"

!
Wie soll ich das anstellen Sad ^^
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.12.2007, 10:18

Du könntest ne Schleife machen, die die hintere Zahl immer mehr erhöht.

Also eine Schleife + Überprüfung ob die Datei schon existiert.
Wenn ja, dann läuft die Schleife weiter.
Wenn nein, dann wird die Datei erstellt.

Aber besser und einfacher wäre denke ich einfach das Datum + Uhrzeit hinten oder vorne dran zu hängen.

mfg, ZiG
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
kackb00n_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 07.12.2007
Beiträge: 42


Verfasst am: 20.12.2007, 10:24

Auf die idee mit datum+zeit bin ich auch gekommen.

FUNZT NICHT!

Es werden ja immer neue bytes gesendet. d.h. das" Private Sub Winsock1_DataArrival " Leuft immer von vorne durch.
Wenn ich jetzt die durch nummerieren will mit Zeit, dann schreib der immer neue dateien!! -> "pic_127.0.0.1_12.00.10.bmp" "pic_127.0.0.1_12.00.15.bmp" und so weiter..
 
jojo4ever_
Poster
Poster

Anmeldedatum: 22.07.2007
Beiträge: 108


Verfasst am: 20.12.2007, 16:21

Option Explicit
Dim x as integer

Private Sub Form_Load()
x = 1
End Sub

Private Sub Winsock1_DataArrival()
Do While Dir(App.Path & "/downloads/" & "pic_" & Winsock1.RemoteHostIP & x & ".bmp") = True
x = x + 1
Loop

App.Path & "/downloads/" & "pic_" & Winsock1.RemoteHostIP & "1" & ".bmp"
End Sub

Ich hasse while schleifen kann mir jemand die while schleife verbessern?
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.12.2007, 16:50

@kackb00n

Erstell zuerst eine temporäre Datei worin du erstmal die ganzen Daten schreibst.
Wenn die Datei dann gesendet wurde, änderst du den Namen auf den, den du willst + Datum und Uhrzeit.

Im winsock file transfer tutorial findest du wie man erkennt ob er mit senden fertig ist oder nicht.


Falls du das so nicht machen willst, hab ich dir ja oben noch die Möglichkeit mit einer Schleife und einem Zähler gepostet.

Aber hier mal ein source:

Code:

Public Function FileExists(ByVal FileName As String) As Boolean
On Local Error Resume Next
FileExists = (Dir$(FileName) <> "")
End Function


Code:

Dim i as long, nFilename as string, FileExtension as string

nFilename = "blabla"
nFileExtension = "txt"

i = 1
Do
 If Not FileExists(App.path & "\" & nFilename & i & "." & nFileExtension)
  'Datei schreiben
  Exit do
 End if
 i = i+1
loop


Sollte so eigentlich funktionieren.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Rausch_
Poster
Poster

Anmeldedatum: 03.11.2007
Beiträge: 164


Verfasst am: 20.12.2007, 18:44

wieso macht ihr alle so kompliziert?
ich denke das funzt alles nicht da das bild ja in kleine teile gehackt wird also hat man dann ganz viele kleine mini bilder die zusammen das richtige ergeben
mach einfach ne variable z.B
zahl as integer
dname as string
und dann im server wenn er anfängt das bild zu senden sendet er vorher z.B "STARTCAPTION" und wenn das im client ankommt wird
dname = "screenshot" & zahl
zahl = zahl +1
und dann wenn ein teil ankommt wird es z.B. in app.path & "\downloads\" & dname & ".bmp"
und wenn der server fertig ist sendet der server "STOPCAPTION"
und wenn das im client ankommt macht der
picture1.setpicture app.path & "\downloads\" & dname & ".bmp"
und schon geht das
mfg
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.12.2007, 19:29

Ach und das nennst du nicht kompliziert?^^

Aber irgendwie versteh ich jetzt nicht mehr was kackb00n eigentlich machen will.
Versendest du die Datei in Blöcken und schreibst jeden Block in eine extra Datei?

Ich dachte du brauchst den Code, damit weitere Dateien die du versendest mit dem selben Namen plus anderer Nummer erstellt werden sollen.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
kackb00n_
Tutorial Leser
Tutorial Leser

Anmeldedatum: 07.12.2007
Beiträge: 42


Verfasst am: 20.12.2007, 20:57

hm so viel code... ich weiß net welchen ich probiern soll!

Ja,
Code:
Ich dachte du brauchst den Code, damit weitere Dateien die du versendest mit dem selben Namen plus anderer Nummer erstellt werden sollen.


Das ist richtig.
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 20.12.2007, 21:31


Ja, dann nimm einfach den Code von mir.
Der läuft solange in einer Schleife bis er einen Dateinamen + Zahl gefunden hat die noch nicht existiert.
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: dateien, datei, überschreiben, per, screenshot, bmp

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [suche] Tuturials winsock & daten senden 983 09.06.2011, 13:19
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2608 06.03.2008, 21:19
Keine neuen Beiträge ListView speichern & laden 1331 05.08.2008, 13:32
Keine neuen Beiträge Registry & Co Fragen 1203 03.05.2007, 10:57
Keine neuen Beiträge Listbox speichern & laden 2266 22.03.2007, 21:25
 


[ Time: 0.1591s ][ Queries: 104 (0.0993s) ][ GZIP on - Debug on ]