swt
Du brauchst auch Daten für die de nen Speicherbereich reservierst...
Kannst doch nit einfach den Source aus'em zusammenhang reissen und PacketSize keinen Wert zuweisen
Daten Splitten und Später wieder zusammenfügen
Ja und dass ist das Problem ich will mehrere Daten nur zusammenfügen und in dem Code kann man die nur zusammenfügen wenn man die vorher geteilt hat.
Ich brauche einen Code der alle Dateien in zb. dem Ordner C:\test
zusammen fügt also erst die Datei 1.VOB dann die Datei 2.VOB dann die 3.VOB...
Gruss, Joel
Ich brauche einen Code der alle Dateien in zb. dem Ordner C:\test
zusammen fügt also erst die Datei 1.VOB dann die Datei 2.VOB dann die 3.VOB...
Gruss, Joel
----------------------------------------------------------
PB 5.20 Beta 10 | Windows 7
PB 5.20 Beta 10 | Windows 7
Wat denn nu?!
Ich dachte du willst zerlegen -> verschicken -> wieder zusammen setzen?!
Ist das jetzt noch das was du machen willst oder willste jetzt nur noch sowas wie WinZIP das alle Dateien in einem Ordner zu einer Datei zusammenfasst?!
Falls de wie in deinem ersten Post beschrieben zerlegen & zusammensetzen willst dann ist das was in meinem Link stand genau das was du suchst, musste natürlich anpassen ähnlich dem:
Ich dachte du willst zerlegen -> verschicken -> wieder zusammen setzen?!
Ist das jetzt noch das was du machen willst oder willste jetzt nur noch sowas wie WinZIP das alle Dateien in einem Ordner zu einer Datei zusammenfasst?!
Falls de wie in deinem ersten Post beschrieben zerlegen & zusammensetzen willst dann ist das was in meinem Link stand genau das was du suchst, musste natürlich anpassen ähnlich dem:
Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Editor_0
#String_0
#String_1
#String_2
#Button_0
#Button_1
#Button_2
#Button_3
EndEnumeration
Path.s = ""
DefaultPacketSize.l = 50000
SourceFile.s = ""
DestinationFile.s = ""
Procedure SplitFile(SourceFile.s, DefaultPacketSize.l)
ClearGadgetItemList(#Editor_0)
OpenFile(0, SourceFile)
Path.s = GetPathPart(SourceFile)
Size.l = Lof(0)
PacketCount.l = Size / DefaultPacketSize
PacketSize.l = Size / PacketCount
RestSize.l = Size - PacketSize * PacketCount
*mem = AllocateMemory(PacketSize)
For i = 1 To PacketCount
ReadData(0, *mem, PacketSize)
OpenFile(i,Path + GetFilePart(SourceFile) + Str(i) + ".pck")
WriteData(i,*mem, PacketSize)
CloseFile(i)
AddGadgetItem(#Editor_0, i, GetFilePart(SourceFile) + Str(i) + ".pck")
Next i
If RestSize > 0
OpenFile(PacketCount+1, Path + GetFilePart(SourceFile) + Str(PacketCount+1) + ".pck")
WriteData(PacketCount+1,*mem, RestSize)
CloseFile(PacketCount+1)
AddGadgetItem(#Editor_0, PacketCount+1, GetFilePart(SourceFile) + Str(PacketCount+1) + ".pck")
EndIf
FreeMemory(*mem)
CloseFile(0)
OpenFile(PacketCount+2, Path + GetFilePart(SourceFile) + ".pck0")
WriteString(PacketCount+2, GetFilePart(SourceFile) + ";" + Str(DefaultPacketSize) + ";" + Str(Size))
CloseFile(PacketCount+2)
AddGadgetItem(#Editor_0, 0, GetFilePart(SourceFile) + ".pck0")
EndProcedure
Procedure MergeFile(DestinationFile.s)
ClearGadgetItemList(#Editor_0)
ReadFile(0, DestinationFile)
Path.s = GetPathPart(DestinationFile)
Line.s = ReadString(0)
Name.s = StringField(Line, 1, ";")
DefaultPacketSize.l = Val(StringField(Line, 2, ";"))
Size.l = Val(StringField(Line, 3, ";"))
PacketCount.l = Size / DefaultPacketSize
PacketSize.l = Size / PacketCount
RestSize.l = Size - PacketSize * PacketCount
CloseFile(0)
OpenFile(0, Path + Name)
*mem = AllocateMemory(PacketSize)
For i = 1 To PacketCount
OpenFile(i, Path + Name + Str(i) + ".pck")
ReadData(i, *mem, PacketSize)
CloseFile(i)
WriteData(0,*mem,PacketSize)
AddGadgetItem(#Editor_0, PacketCount, "Extrahiert: " + Path + Name + Str(i) + ".pck")
Next i
If RestSize > 0
OpenFile(PacketCount+1, Path + Name + Str(PacketCount+1) + ".pck")
ReadData(PacketCount+1, *mem, PacketSize)
CloseFile(PacketCount+1)
WriteData(0,*mem,RestSize)
AddGadgetItem(#Editor_0, PacketCount+1, "Extrahiert: " + Path + Name + Str(PacketCount+1) + ".pck")
EndIf
FreeMemory(*mem)
CloseFile(0)
EndProcedure
If OpenWindow(#Window_0, 216, 0, 320, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
EditorGadget(#Editor_0, 10, 10, 150, 270, #PB_Editor_ReadOnly)
StringGadget(#String_0, 170, 10, 100, 20, "")
StringGadget(#String_1, 170, 40, 100, 20, "")
StringGadget(#String_2, 170, 70, 100, 20, Str(DefaultPacketSize))
ButtonGadget(#Button_0, 280, 10, 30, 20, "...")
ButtonGadget(#Button_1, 280, 40, 30, 20, "...")
ButtonGadget(#Button_2, 170, 230, 140, 20, "Split")
ButtonGadget(#Button_3, 170, 260, 140, 20, "Merge")
EndIf
Repeat
Select WindowEvent() ;{
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case #Button_0
If GetGadgetText(#String_0) = ""
Path = "C:\"
Else
Path = GetGadgetText(#String_0)
EndIf
SourceFile = OpenFileRequester("2 Split", Path, "Alle Dateien (*.*)|*.*", 0)
SetGadgetText(#String_0, SourceFile)
Case #Button_1
If GetGadgetText(#String_1) = ""
Path = "C:\"
Else
Path = GetGadgetText(#String_1)
EndIf
DestinationFile = OpenFileRequester("2 Merge", Path, "Index (*.pck0)|*.pck0", 0)
SetGadgetText(#String_1, DestinationFile)
Path = GetPathPart(DestinationFile)
Case #Button_2
If SourceFile <> ""
SplitFile(SourceFile, Val(GetGadgetText(#String_2)))
EndIf
Case #Button_3
If DestinationFile <> ""
MergeFile(DestinationFile)
EndIf
EndSelect
EndSelect
Until Quit = 1
EndIf
End
Ahh, der Joel wieder.
Joel, lass mal gut sein sein mit den VObs zusammenfügen. Die sind genau richtig so, dass die getrennt snd. Die Anleitung für dne Mediaplayer, die zu lesen, liegt in .IFO Datei. Also mach nich, sonst kannste dne Film gar nich mehr guckn. Wenn du die DVD aufm Rechner gucken willst, dann nimm einfach VLC Player, Verzeichnis öffnen und wähl das aus, ibn dem die ganzen VOBs drin sind.
Joel, lass mal gut sein sein mit den VObs zusammenfügen. Die sind genau richtig so, dass die getrennt snd. Die Anleitung für dne Mediaplayer, die zu lesen, liegt in .IFO Datei. Also mach nich, sonst kannste dne Film gar nich mehr guckn. Wenn du die DVD aufm Rechner gucken willst, dann nimm einfach VLC Player, Verzeichnis öffnen und wähl das aus, ibn dem die ganzen VOBs drin sind.