Seite 1 von 1

Video zusammenfügen

Verfasst: 01.10.2007 18:55
von Joel
Hallo,

Ich habe ein Programm geschrieben das AVI Dateien zusammenfügt. Sie befinden sich in: "C:\SPLIT\". Wenn ich mit dem unten aufgeführten Code versuche die Videos wieder zusammenzufügen dann dann klappt das zwar mit der F5 Taste in PB aber wenn ich genau den gleichen Code als :EXE speicher und dann ausführe passiert nichts. :|

WISO?

Code: Alles auswählen

f = -1
Delay(2000)
P.s="C:\SPLIT\"
For x=1 To 300
f+1
ggr = ReadFile(333, P+Str(x)+".AVI")
If ggr <> 1988
Break 1
EndIf 
Next 
OpenFile(1,"C:\jop.AVI")
For x=1 To f
OpenFile(0,P+Str(x)+".AVI") 
  For i=1 To 2140000
    WriteByte(1,ReadByte(0))
  Next 
  CloseFile(0) 
Next 
Der 1. Teil versucht herauszufinden wie viele Dateien es gibt. "f" ist dann dann das Ergebniss. Und dann werden die Teile zusammengefügt was in der IDE klapptaberals EXE nicht (siehe oben)

Verfasst: 01.10.2007 19:46
von NicTheQuick
Sowie dein Code aussieht, ist er auch nicht besonders gut strukturiert.

Du hast z.B. keine Rückgabewerte ausgewertet. Und was ist 1988? Wieso
schreibst du Byte für Byte?

Ich weiß, dass du Anfänger bist, sonst hättest du hier nicht gepostet. Aber ich
will dir einfach mal ein Beispiel geben, wie es eher aussehen sollte.

Ich habe den Code nicht getestet. Falls also ein Fehler drin sein sollte, liegt es
an dir ihn zu finden. Aber das Grundkonzept sollte dann klar sein.

Code: Alles auswählen

Define Path.s, a.l, Max.l, Size.l, *Buffer = 0

Path = "C:\SPLIT\"

For Max = 1 To 300
  If FileSize(Path + Str(Max) + ".AVI") < 0
    Max - 1
    Break
  EndIf
Next

If CreateFile(0, "c:\jop.AVI")
  For a = 1 To Max
    If ReadFile(1, Path + Str(a) + ".AVI")
      Size = Lof(1)
      *Buffer = ReAllocateMemory(*Buffer, Size)
      If *Buffer
        ReadData(1, *Buffer, Size)
        WriteData(0, *Buffer, Size)
      Else
        Debug "Speicher konnte nicht allokiert werden!"
      EndIf
      CloseFile(1)
    Else
      Debug "Datei konnte nicht zum Lesen geöffnet werden!"
    EndIf
  Next
  CloseFile(0)
Else
  Debug "Datei konnte nicht zum Schreiben geöffnert werden!"
EndIf

Verfasst: 01.10.2007 20:38
von Joel
Der Code klappt, THX. Ich bin sicher ich mache das auch irgentwann strukturierter jetzt muss ich aber erstmal lernen Codes selber zu schreiben ohne hier ins Board zu schreiben.