|
| Autor |
Nachricht |
kackb00n_ 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
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 ^^ |
|
| |
|
 |
ZiG_ Ü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

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

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

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

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

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

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

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) |
|
| |
|
 |