| 
				
					|  | Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
 |  
 
	
		| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |  
		| Autor | Nachricht |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 19.01.2019, 14:41    Titel: Brauche Hilfe für ein einfaches Programm |   |  
				| 
 |  
				| Hallo Leute, 
 ich habe seit vielen Jahren nichts mehr mit Basic gemacht und habe bisher im Netz auch kein Programm gefunden, dass die Aufgabe, zu der ich es brauche, erfüllt.
 
 Es geht um Folgendes:
 
 ich habe mit Spracherkennungssoftware die gesprochene Sprache eines Films in eine Textdatei konvertiert. Ich möchte daraus einen Untertiteldatei machen, die ich unter den Film lege.
 
 Es fehlt natürlich der Timecode/Timestamp, damit die Textzeilen auch am richtigen Ort erscheinen. den Timecode konnte ich aber mit einem anderen Tool schon automatisch und im richtigen Format herauslesen.
 
 Ich habe nun zwei Dateien im txt Format. Einmal den Timecode und einmal den Text aus dem Film.
 
 Ich bräuchte nun ein Programm, das die beiden Textdateien zusammenführt.
 Die Textdatei, die es generiert soll zuerst die Timecodes darstellen und danach den Text aus dem Film.
 
 Ein weiteres Tool, das ich habe, kann dann diesen vielleicht unvollkommenen Textfile mit der Videodatei wieder synchronisieren...
 
 Es geht also, einfach gesagt, darum, die Timecodes der einen Textdatei in die Textdatei zu integrieren. Zb, indem man bei Programmstart des benötigten Programms die beiden Dateien angibt und dann ggf noch einen Zeilenabstand angibt. ZB. Jede dritte Textzeile wird einer der Timecodes vor den Text eingefügt.
 
 Kann mir hier jemand Hilfe. Mangels Praxis und Übung kann ich mir ein solches Programm sehr gut und einfach vorstellen, aber es nicht selbst schreiben zzt.
 
 Bin hier um jede Hilfe dankbar! Fragen nach weiteren Informationen etc. natürlich sehr willkommen
   
 Lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 20.01.2019, 15:02    Titel: |   |  
				| 
 |  
				| Hallo klendathu und willkommen im Forum!   
 Ich habe mal mein QB ausgemottet und "Quick & Dirty" ein kleines Programm zusammengestoppelt, das einen ersten Eindruck für einen Lösungsweg geben könnte. Testen konnte ich es in Ermangelung geeigneter Eingabedaten nicht, aber ich hoffe mal, daß ich keinen gravierenden Denkfehler gemacht habe:
 
 
  	  | Code: |  	  | 'eingaben INPUT "Textdatei:"; text$
 INPUT "Timecodedatei:"; timecode$
 INPUT "Zeilenabstand:"; zeilen%
 INPUT "Ausgabedatei:"; ausgabe$
 
 'eingabedateien öffnen
 OPEN text$ FOR INPUT AS #1
 OPEN timecode$ FOR INPUT AS #2
 
 'ausgabedatei öffnen
 OPEN ausgabe$ FOR OUTPUT AS #3
 
 DO
 LINE INPUT #2, zeit$ 'timecode einlesen
 PRINT #3, zeit$ 'timecode in ausgabedatei schreiben
 FOR x% = 1 TO zeilen% 'text einlesen
 IF EOF(1) THEN
 EXIT DO 'keine weiteren textzeilen --> programm beenden
 ELSE
 LINE INPUT #1, t$ 'textzeile einlesen
 PRINT #3, t$ 'textzeile in ausgabedatei schreiben
 END IF
 NEXT
 LOOP
 
 CLOSE 'alle dateien schliessen
 | 
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 20.01.2019, 17:45    Titel: |   |  
				| 
 |  
				| Hey, 
 Schon mal richtig vielen Dank!!! Das Programm scheint zu laufen...
 
 Kannst du die txtfiles hier mal für mich ausprobieren und es testen?
 
 https://ufile.io/nowu6
 
 eine datei hat die timecodes, die andere einen sampletext
 
 Wäre echt nett, wenn du mir das prg zu ner exe kompilieren kannst!
 
 Wenn du dir die Mühe machen würdest, wäre das echt super...
 
 Lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 21.01.2019, 10:51    Titel: |   |  
				| 
 |  
				| Was ist das für ein Dateiformat? Ich kann damit leider nichts anfangen. 	  | klendathu hat Folgendes geschrieben: |  	  | Kannst du die txtfiles hier mal für mich ausprobieren und es testen? | 
 
 
 Kein Problem, aber das mache ich dann mit freeBasic. 	  | klendathu hat Folgendes geschrieben: |  	  | Wäre echt nett, wenn du mir das prg zu ner exe kompilieren kannst! | 
 
 Hier der FB - Quellcode (mit ein paar kleinen Verbesserungen):
  	  | Code: |  	  | Dim As String text, timecode, ausgabe, zeit, t Dim As Integer zeilen
 
 'eingaben
 Input "    Textdatei:"; text
 Input "Timecodedatei:"; timecode
 Input "Zeilenabstand:"; zeilen
 Input " Ausgabedatei:"; ausgabe
 Print
 
 'eingabedateien öffnen
 If Open (text For Input As #1) Then
 Print "Textdatei nicht gefunden"
 Sleep
 End
 EndIf
 If Open (timecode For Input As #2) Then
 Print "Timecodedatei nicht gefunden"
 Sleep
 End
 EndIf
 
 'ausgabedatei öffnen
 If Open (ausgabe For Output As #3) Then
 Print "Konnte Ausgabedatei nicht öffnen"
 Sleep
 End
 EndIf
 
 Do
 Line Input #2, zeit 'timecode einlesen
 Print #3, zeit 'timecode in ausgabedatei schreiben
 For x As Integer = 1 To zeilen 'text einlesen
 If Eof(1) Then
 Exit Do 'keine weiteren textzeilen --> programm beenden
 Else
 Line Input #1, t 'textzeile einlesen
 Print #3, t 'textzeile in ausgabedatei schreiben
 End If
 Next
 Loop
 
 Close 'alle dateien schliessen
 
 Print "OK"
 Sleep
 
 | 
 Die .exe habe ich hier hochgeladen.
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 21.01.2019, 14:11    Titel: |   |  
				| 
 |  
				| hi, 
 Vielen Dank!!!!
 
 Zu deiner Frage: Sorry, ich habe die Dateien mit winace verpackt. das benutzt kaum jemand mehr inzwischen und .ace ist nur von diesem programm unterstützt.
 
 Das Programm funktioniert ziemlich gut... Es gibt da aber noch ein Problemchen.
 
 Es sieht so aus, als würde der Text nicht genau an die Anzahl der Timecodes angepasst.
 
 Ist vielleicht ein wenig schwer hier zu erklären.
 
 Deswegen habe ich dir hier die Dateien nochmal separat und unverpackt hochgeladen zum ausprobieren, wenn du magst.
 
 Es fällt dir vielleicht sofort auf...
 
 Hier die Links.
 
 https://ufile.io/fuko5
 https://ufile.io/phkl3
 https://ufile.io/uxn7d
 
 Es ist auch ein Beispiel dabei, wie es in etwa aussehen sollte. Die Srt Datei (einfach im notepad öffnen).
 
 Wäre echt super, wenn du es dir nochmal kurz anschauen könntest.
 
 Ansonsten schon mal toller Job! Vielen Dank
   
 Lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 22.01.2019, 00:09    Titel: |   |  
				| 
 |  
				| Das macht die Sache jetzt *ein bisschen* komplizierter.   
 Irgendwie passen Text und Timecodes von der Anzahl her nicht zusammen. Ich habe mal den passendsten Kompromiss gesucht und die Texte nach jedem Punkt und jedem Komma getrennt.
 
 
  	  | Code: |  	  | Declare Function zerlegen(text As String = "", trennzeichen As String = "") As String 
 Dim As String text, timecode, ausgabe, zeit, t, g
 Dim As Integer zeilen, punkte, anfang, ende
 
 'eingaben
 Input "    Textdatei:"; text
 Input "Timecodedatei:"; timecode
 'Input "Zeilenabstand:"; zeilen
 Input " Ausgabedatei:"; ausgabe
 Print
 
 'text = exepath + "\text.txt"
 'timecode = exepath + "\timecodesample.txt"
 'ausgabe = exepath + "\ausgabe.srt"
 
 'eingabedateien öffnen
 If Open (text For Input As #1) Then
 Print "Textdatei nicht gefunden"
 Sleep
 End
 EndIf
 If Open (timecode For Input As #2) Then
 Print "Timecodedatei nicht gefunden"
 Sleep
 End
 EndIf
 
 'ausgabedatei öffnen
 If Open (ausgabe For Output As #3) Then
 Print "Konnte Ausgabedatei nicht öffnen"
 Sleep
 End
 EndIf
 
 Do Until Eof(1)
 Line Input #1, t 'nächste textzeile holen
 If t = "" Then 'leerzeile
 Continue Do
 EndIf
 
 zeilen += 1
 
 g = zerlegen(t, ",.")
 Do While Len(g)
 punkte += 1
 Do
 Line Input #2, zeit  'laufende nummer
 If Eof(2) Then 'keine weiteren timecodes
 Exit Do, Do
 EndIf
 Loop Until Len(zeit) 'leerzeilen überlesen
 Print zeit
 Print #3, zeit
 Line Input #2, zeit 'timecode
 Print zeit
 Print #3, zeit
 Print Trim(g)
 Print #3, Trim(g) 'untertitel
 Print
 Print #3, ""
 
 g = zerlegen() 'nächster teilstring
 Loop
 Loop
 Print zeilen, punkte
 
 Close 'alle dateien schliessen
 
 Print "OK"
 Sleep
 
 Function zerlegen(text As String = "", trenner As String = "") As String
 Static As Integer anfang, ende
 Static As String txt, tr
 
 If Len(trenner) Then
 tr = trenner
 EndIf
 
 If Len(text) Then
 txt = text
 anfang = 1
 ende = 1
 EndIf
 
 If (tr = "") Or (txt = "") Then
 Return "" 'fehler
 EndIf
 
 ende = InStr(anfang, txt, Any tr)
 Function = Mid(txt, anfang, ende - anfang + 1)
 anfang = ende + 1
 
 End Function
 | 
 http://users.freebasic-portal.de/grindstone/bin/Untertitel2u.exe
 
 Sinnvoller wäre es, wenn der Text an den passenden Stellen eindeutige Trennzeichen enthielte (entweder von Hand oder -irgendwie- automatisch gesetzt). Das Trennzeichen müsste ein Zeichen sein, das im Text sonst garantiert nicht vorkommt, beispielsweise das "#". Der Text könnte dann etwa so aussehen:
 Lorem ipsum dolor sit amet, consectetur adipiscing elit.#Vivamus condimentum sagittis lacus, laoreet luctus ligula laoreet ut.#Vestibulum ullamcorper accumsan velit vel vehicula.#Proin tempor lacus arcu. Nunc at elit condimentum,#semper nisi et, condimentum mi.#In venenatis blandit nibh at sollicitudin... usw. 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 22.01.2019, 14:11    Titel: |   |  
				| 
 |  
				| Das ist perfekt, wie du es hinbekommen hast   
 Du bist mein Held
   
 Wäre es aufwendig, in dem programm noch eine routine einzubauen, die in regelmäßigen abständen ein solchen wiederkehrendes symbol einfügt? Zb Punkt, Komma, etc.... So dass Text und Code nachher passend sind?
 
 Noch eine Frage? Wäre es möglich, diese "Silence" einfügungen noch durch die Software entfernen zu lassen, so dass sie im fertigen txtfile gar nicht mehr auftauchen?
 
 Dann wäre es perfekt!!!
 
 Ansonsten schon mal ganz toller Job, du hast mir SEHR geholfen!!!
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 22.01.2019, 23:44    Titel: |   |  
				| 
 |  
				| Nu übertreib mal nicht. 	  | klendathu hat Folgendes geschrieben: |  	  | Das ist perfekt, wie du es hinbekommen hast lächeln 
 Du bist mein Held lächeln
 | 
  Und von Perfektion ist das Programm noch ein ganzes Stück entfernt. 
 
 Auf jeden Fall wäre es eine interessante Aufgabe, einen passenden Algorithmus zu entwickeln. Die Sprech- und Pausenzeiten dürften sich aus den Timecodes ableiten lassen: Anfangszeitpunkt bis Endzeitpunkt --> Sprechzeit, Endzeitpunkt bis Anfangszeitpunkt des nächsten Timecodes --> Sprechpause. Dann braucht man nur noch eine ungefähre Vorstellung davon, wieviel Text in welcher Zeit gesprochen wird... 	  | Zitat: |  	  | Wäre es aufwendig, in dem programm noch eine routine einzubauen, die in regelmäßigen abständen ein solchen wiederkehrendes symbol einfügt? | 
 
  Mal nachdenken... 
 
 Wenn du mir verrätst, woran ich die Einfügungen erkenne... Meinst du die Zeilenumbrüche bzw. Leerzeilen? 	  | Zitat: |  	  | Wäre es möglich, diese "Silence" einfügungen noch durch die Software entfernen zu lassen, so dass sie im fertigen txtfile gar nicht mehr auftauchen? | 
 
 Brauchst du das Programm öfter? Dann würde ich noch ein paar Routinen einfügen, die die Eingabe etwas komfortabler machen. Für einen einmaligen Job würde sich der Aufwand allerdings nicht lohnen.
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 23.01.2019, 13:47    Titel: |   |  
				| 
 |  
				| Hier ein erster Versuch, die Textlänge an den Timecode anzupassen. Das Programm ermittelt aus dem Timecode die Länge des Textes (in Millisekunden) und berechnet dann mithilfe des Wertes "Buchstaben/ms" die ungefähre Anzahl der in dieser Zeit gesprochenen Buchstaben (besser wäre "Silben/ms", aber das würde den Rahmen dieses Programms sprengen). Von dort aus wird -in beide Richtungen- das nächstliegende Satzzeichen gesucht und das entsprechende Textstück herausgetrennt. 
 Ein guter Anfangswert für "Buchstaben/ms" ist .01. Außerdem kannst du festlegen, ob der Text auch nach Leerzeichen getrennt werden soll oder nur nach Satzzeichen (".,;:").
  	  | Code: |  	  | Declare Function msec(zeit As String) As Integer 
 Dim As String text, timecode, ausgabe, zeit, t, g, txt, timevon, timebis, leerzeichen, trenner, nummer
 Dim As Integer zeilen, punkte, anfang, ende, x, timediff, buchstaben, naechster, voriger
 Dim As Double laenge
 
 ''eingaben
 Input "    Textdatei:"; text
 Input "Timecodedatei:"; timecode
 Input "Zeilenabstand:"; zeilen
 Input "Buchstaben/ms:"; laenge
 Input " Ausgabedatei:"; ausgabe
 Input "Bei Leerzeichen trennen? J/N"; leerzeichen
 Print
 
 'text = ExePath + "\text.txt"
 'timecode = ExePath + "\timecodesample.txt"
 'ausgabe = ExePath + "\ausgabe.srt"
 'laenge = .01 'buchstaben pro millisekunde
 'leerzeichen = "j"
 
 'eingabedateien öffnen
 If Open (text For Input As #1) Then
 Print "Textdatei nicht gefunden"
 Sleep
 End
 EndIf
 If Open (timecode For Input As #2) Then
 Print "Timecodedatei nicht gefunden"
 Sleep
 End
 EndIf
 
 'ausgabedatei öffnen
 If Open (ausgabe For Output As #3) Then
 Print "Konnte Ausgabedatei nicht öffnen"
 Sleep
 End
 EndIf
 
 anfang = 1
 ende = 1
 trenner = IIf(leerzeichen = "j", ".,;: ", ".,;:")
 txt = Input(Lof(1), 1) 'gesamtes textfile in string laden
 
 Do 'timecodedatei abarbeiten
 Line Input #2, g
 If InStr(g, "-->") Then 'timecode
 timevon = Left(g, InStr(g, "-->") - 2)
 timebis = Mid(g, InStr(g, "-->") + 4)
 timediff = msec(timebis) - msec(timevon)
 buchstaben = Int(timediff * laenge + .5)
 naechster = InStr(anfang + buchstaben, txt, Any trenner)
 voriger = InStrRev(txt, Any trenner, anfang + buchstaben)
 If naechster = 0 Then
 ende = voriger
 ElseIf voriger = 0 Then
 ende = naechster
 ElseIf voriger < anfang Then
 ende = naechster
 ElseIf Abs(naechster - (anfang + buchstaben)) <= Abs(voriger - (anfang + buchstaben)) Then
 ende = naechster
 Else
 ende = voriger
 EndIf
 If ende > anfang Then
 Print #3, nummer
 Print #3, g
 Print #3, Mid(txt, anfang, ende - anfang + 1)
 Print #3, ""
 anfang = ende + 1
 Else
 Exit Do
 EndIf
 Do While txt[anfang - 1] = Asc(" ")
 anfang += 1
 Loop
 ElseIf g = "" Then 'leerzeile
 'nichts tun
 Else 'nummer
 nummer = g
 EndIf
 Loop Until Eof(2)
 
 ? "OK"
 Close
 
 Sleep
 End
 
 Function msec(zeit As String) As Integer
 Dim As String std, min, sec
 Dim As Integer ret
 
 std = Left(zeit, 2)
 min = Mid(zeit, 4, 2)
 sec = Mid(zeit, 7, 2)
 ret = 3600000 * Val(std) + 60000 * Val(min) + 1000 * Val(sec) + Val(Mid(zeit, 10))
 Return ret
 End Function
 | 
 http://users.freebasic-portal.de/grindstone/bin/Untertitel3u.exe
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 23.01.2019, 14:45    Titel: |   |  
				| 
 |  
				|  	  | grindstone hat Folgendes geschrieben: |  	  | Nu übertreib mal nicht. 	  | klendathu hat Folgendes geschrieben: |  	  | Das ist perfekt, wie du es hinbekommen hast lächeln 
 Du bist mein Held lächeln
 | 
  Und von Perfektion ist das Programm noch ein ganzes Stück entfernt. 
 
 Auf jeden Fall wäre es eine interessante Aufgabe, einen passenden Algorithmus zu entwickeln. Die Sprech- und Pausenzeiten dürften sich aus den Timecodes ableiten lassen: Anfangszeitpunkt bis Endzeitpunkt --> Sprechzeit, Endzeitpunkt bis Anfangszeitpunkt des nächsten Timecodes --> Sprechpause. Dann braucht man nur noch eine ungefähre Vorstellung davon, wieviel Text in welcher Zeit gesprochen wird... 	  | Zitat: |  	  | Wäre es aufwendig, in dem programm noch eine routine einzubauen, die in regelmäßigen abständen ein solchen wiederkehrendes symbol einfügt? | 
 
  Mal nachdenken... 
 
 Wenn du mir verrätst, woran ich die Einfügungen erkenne... Meinst du die Zeilenumbrüche bzw. Leerzeilen? 	  | Zitat: |  	  | Wäre es möglich, diese "Silence" einfügungen noch durch die Software entfernen zu lassen, so dass sie im fertigen txtfile gar nicht mehr auftauchen? | 
 
 Brauchst du das Programm öfter? Dann würde ich noch ein paar Routinen einfügen, die die Eingabe etwas komfortabler machen. Für einen einmaligen Job würde sich der Aufwand allerdings nicht lohnen.
 
 Gruß
 grindstone
 | 
 
 Ich übertreibe nicht
   
 Ich habe dir aus Versehen eine Timelinedatei geschickt, die ich schon per hand aufgeräumt habe. da fehlen zeilen, die in der datei, die ich ursprünglich ausgegeben bekomme, wenn ich den timecode per tool auslese.
 
 ich schick dir hier nochmal die datei, die ich herausbekomme:
 
 https://ufile.io/j5r70
 
 hier sind noch zeilen drin, wie "linie 1... silence (xxx) etc.)
 
 Wenn du die durch dein Programm noch entfernen lassen könntest, wäre das wirklich noch eine arbeitsersparnis.
 
 Ja, das ist bestimmt nicht einfach, aus den timecodes abzuleiten, wann ein solches zeichen eigefügt werden kann...
 
 ich hätte evtl folgende idee, wie ich auch etwas behilflich sein könnte? was häst du davon:
 
 ich extrahiere aus ein paar serienfolgen fließtext und beziehe es auf die sprechzeit gesamt der jeweiligen folge anhand der timescodes...
 
 das mache ich insgesamt für ca 4-10 folgen und versuche dann pi mal daumen zu sagen, wieviel wörter durchschnittlich auf einen bestimmten zeitraum kommen, bis ein "trennsymbol" eingefügt werden könnte. Dann teile ich dir das ergebnis mit.
 
 wäre das zb etwas, das dir vorschwebt?
 
 
 Ja, ich brauche das Programm öfter. Schon mal richtig vielen Dank, dass du mir da so behilflich bist!!!!
   
 Lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 23.01.2019, 16:52    Titel: |   |  
				| 
 |  
				| oder willst du das vom programm selbst anhand der timecodedaten und der textdatei jeweils berechnen lassen? |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 24.01.2019, 12:14    Titel: |   |  
				| 
 |  
				| Entfernen ist nicht nötig, man kann das Programm anweisen, diese Zeilen einfach zu ignorieren (genau wie die Leerzeilen). 	  | klendathu hat Folgendes geschrieben: |  	  | ...hier sind noch zeilen drin, wie "linie 1... silence (xxx) etc.) 
 Wenn du die durch dein Programm noch entfernen lassen könntest, wäre das wirklich noch eine arbeitsersparnis.
 | 
 
 
 Das ist genau das, was der Wert "Buchstaben/ms" macht. Da kannst du ein wenig mit herumexperimentieren, bis es passt. 	  | Zitat: |  	  | ich hätte evtl folgende idee, wie ich auch etwas behilflich sein könnte? was häst du davon: 
 ich extrahiere aus ein paar serienfolgen fließtext und beziehe es auf die sprechzeit gesamt der jeweiligen folge anhand der timescodes...
 
 das mache ich insgesamt für ca 4-10 folgen und versuche dann pi mal daumen zu sagen, wieviel wörter durchschnittlich auf einen bestimmten zeitraum kommen, bis ein "trennsymbol" eingefügt werden könnte.
 | 
 
 Einen genaueren Zusammenhang zwischen Textlänge und Sprechdauer gäbe -wie schon erwähnt- "Silben/ms", aber dafür bräuchte man ein Wörterbuch für die entsprechende Sprache mit Silbenkennzeichnung.
 
 Hm, nemored, du bist doch unser Sprachexperte hier. Gibt es sowas als Wiki (die Beispieldatei ist in Latein)?
 
 
 Ja, man könnte aus der Anzahl der Buchstaben ( = Länge des Textfiles) und der Gesamtdauer (letzter Timecode minus erster Timecode) einen Vorschlag für "Buchstaben/ms" berechnen. 	  | Zitat: |  	  | oder willst du das vom programm selbst anhand der timecodedaten und der textdatei jeweils berechnen lassen? | 
 
 
 Dann lasse ich das Programm ein .ini - File anlegen, in dem die Eingaben abgespeichert werden, damit du nicht jedesmal alles komplett neu eintippen musst. 	  | Zitat: |  	  | Ja, ich brauche das Programm öfter. | 
 
 Guß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4710
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 24.01.2019, 14:53    Titel: |   |  
				| 
 |  
				| Was meinst du? Ob es Silbentrennungen als öffentlich zugängliche Daten gibt? Da würde ich am ehesten im Open-Source-Bereich suchen, also z. B. in den Wörterbuchdateien, die unter Linux verwendet werden. Die Wörterbuchdateien von LibreOffice müssten ja auch frei sein. Ich kenne allerdings deren Format nicht. 
 Am einfachsten (aber etwas ungenau) wäre es sicher, Vokale zu zählen. Eine Silne enthält im Deutschen immer genau einen Vokal oder einen Diphthong. Wenn du also auf einen einzelnen Vokal stößt, weißt du, dass er zu einer Silbe gehört; beim Aufeinandertreffen zweier oder mehrerer Vokale muss man dann allerdings schauen, ob es sich um einen Diphthong (eine Silbe) oder zwei getrennte Vokale (zwei Silben) handelt. Nur mal so als grober Gedankenansatz.
 _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 24.01.2019, 16:26    Titel: |   |  
				| 
 |  
				| hallo, 
 erst mal richtig vielen dank
  ich halte den ansatz, die buchstaben zu nehmen um den text auf die zeilen aufzuteilen für gut. 
 ich probiere es heute aus.
 
 wäre die routine zur entfernung der silence zeile schon drin? oder könntest du mir die exe noch hochladen und posten?
 
 lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 25.01.2019, 11:57    Titel: |   |  
				| 
 |  
				| @nemored: Danke für den Hinweis mit den Vokalen, es funktioniert deutlich besser als das Abzählen von Wörtern oder Buchstaben.   
 Das Programm berechnet aus der Summe aller Vokale geteilt durch die Summe alle Einblendzeiten einen Wert für "Silben/ms" und damit dann für jeden Timecode den entsprechenden Textabschnitt. Die Zeitabweichung über die gesamte (Beispiel-) Datei liegt bei etwa 2 1/2 Minuten, da ist noch etwas Feintuning erforderlich.
 
 @klendathu: Das Programm legt jetzt automatisch eine .ini-Datei an, in der alle Eingaben abgespeichert werden, so daß du nicht jedesmal alles neu eintippen mußt. Für die Timecodedatei habe ich eine positive Zeilenerkennung programmiert, d.h., es wird nur die laufende Nummer und der Timecode ausgewertet, alles andere wird ignoriert.
 
 EDIT:
 Ich habe noch einen Korrekturfaktor hinzugefügt. Für die Beispieldatei lässt sich die Abweichung mit einem Wert  von .967 (mehr Nachkommastellen bringen keine Verbesserung mehr) auf ca. 6 Sekunden reduzieren.
 
 EDIT 2:
 Nächste Ausbaustufe. Das Programm passt den Text automatisch so gut wie möglich in die Timecodes ein.
 
 
  	  | Code: |  	  | #Include Once "file.bi" 
 
 Function ini OverLoad (datei As String, schluessel As String) As String
 Dim As Integer ff
 Dim As String g
 
 ff = FreeFile
 If Open(datei For Input As #ff) Then
 Return ""
 EndIf
 
 Do
 Line Input #ff, g
 If Left(g, Len(schluessel) + 1) = schluessel + "=" Then
 Close ff
 Return Mid(g, InStr(g, "=") + 1)
 EndIf
 Loop Until Eof(ff)
 Close ff
 Return ""
 End Function
 
 Function ini (datei As String, schluessel As String, wert As string) As Integer
 Dim As Integer ff, ft
 Dim As String g, td
 Dim As boolean gefunden = FALSE
 
 ff = FreeFile
 If Open(datei For Input As #ff) Then
 Return 1 'fehler
 EndIf
 
 td = Left(Command(0), Len(Command(0)) - 3) + "tmp"
 ft = FreeFile
 If Open(td For Output As #ft) Then
 Close ff
 Close ft
 Return 1 'fehler
 EndIf
 
 Do
 Line Input #ff, g
 If Left(g, Len(schluessel) + 1) = schluessel + "=" Then
 Print #ft, schluessel + "=" + wert
 gefunden = TRUE
 Else
 Print #ft, g
 EndIf
 Loop Until Eof(ff)
 
 If gefunden = FALSE Then
 Print #ft, schluessel + "=" + wert
 EndIf
 
 Close ff
 Close ft
 
 Kill datei
 Name td, datei
 
 End Function
 
 Function stringmod(text As String = "", modus As Integer = 0) As String
 'die angabe von 'modus' ist optional, defaultwert ist 0
 'modus0 --> normale funktion
 'modus1 --> kehrt nach 'pfeil nach oben', 'pfeil nach unten', 'bild nach oben' und
 '           'bild nach unten'zum hauptprogramm zurück
 'modus4 --> setzt nur die variable 'vorigertext' und kehrt dann zurück
 'modus8 --> setzt bei druck auf esc - taste code 27 (esc) vor den rückgabestring
 
 Dim As Integer ze, sp, co, gi, ms, mz, rad, tasten, laenge
 Dim As String g, merken, txt, g2
 
 Static As String vorigertext
 
 If (modus And 4) Then
 vorigertext = text + " "
 Return text
 EndIf
 
 If vorigertext = "" Then
 vorigertext = " "
 EndIf
 
 txt = text + " "
 merken = txt
 co = Pos 'cursor offset
 ze = CsrLin
 sp = Len(txt) 'zeiger auf zeichen unter cursor
 Locate ze, co, 1
 Print txt;
 Locate ze, sp+co-1, 1
 
 Do
 'eingabe
 g = InKey
 If Len(g) = 1 Then 'normales zeichen
 If g[0] > 31 Then 'normaler buchstabe
 txt = Left(txt, sp - 1) + g + Mid(txt, sp)
 sp += 1
 Locate ze, co, 0
 Print txt;
 Locate ze, sp+co-1, 1
 Else 'steuerzeichen
 Select Case g[0]
 Case 8 ' Rücktaste
 If sp > 1 Then
 txt = Left(txt, sp - 2) + Mid(txt, sp)
 sp -= 1
 Locate ze, co, 0
 Print txt;
 Locate ze, sp+co-1, 1
 End If
 Case 13
 'return
 Case 27 'esc
 If (modus And 8) Then
 txt = Chr(27) + txt
 Else
 txt = merken 'alter string
 EndIf
 g = Chr(13) 'beenden
 Case Else
 'Print "*"; g; "*"; ASC(g) 'code von unbekannter taste anzeigen
 End Select
 End If
 ElseIf Len(g) = 2 Then 'steuerzeichen
 gi = g[1]
 Select Case gi 'steuerzeichen
 Case 75 'pfeil nach links -> cursor nach links
 If sp > 1 Then
 sp -= 1
 Locate ze, sp+co-1, 1
 End If
 Case 77 'pfeil nach rechts -> cursor nach rechts
 If sp < Len(txt) Then
 sp += 1
 Locate ze, sp+co-1, 1
 ElseIf txt = " " Then 'vorherigen string setzen
 txt = vorigertext
 sp = Len(txt)
 Print txt;
 Locate ze, sp+co-1, 1
 End If
 Case 14 'rücktaste -> zeichen vor cursor löschen
 If sp > 1 Then
 txt = Left(txt, sp - 1) + Mid(txt, sp)
 sp -= 1
 Locate ze, co, 0
 Print txt;
 Locate ze, sp+co-1, 1
 End If
 Case 83 'entf -> zeichen hinter cursor löschen
 If sp < Len(txt) Then
 txt = Left(txt, sp - 1) + Mid(txt, sp + 1)
 Locate ze, co, 0
 Print txt;
 Locate ze, sp+co-1, 1
 End If
 Case 71 'pos1 -> cursor an stringanfang setzen
 sp = 1
 Locate ze, sp+co-1, 1
 Case 79 'ende -> cursor an stringende setzen
 sp = Len(txt)
 Locate ze, sp+co-1, 1
 Case Else
 If (modus And 1) Then
 txt = g + Chr(ze) + Chr(co) + txt 'steuerzeichen und cursorposition zurückgeben
 g = Chr(13)
 EndIf
 'Print "*"; g; "*";Asc(Right(g,1)) 'code von unbekannter taste anzeigen
 End Select
 Else 'keine taste
 Sleep 1 'zur ressourcenschonung
 End If
 Loop Until g = Chr(13) 'return
 
 vorigertext = txt
 Return Left(txt, Len(txt) - 1)
 Locate ze, sp+co-1, 0 'cursor aus
 
 End Function
 
 Function msec(zeit As String) As Integer
 Dim As String stunden, minuten, sekunden
 Dim As Integer ret
 
 stunden = Left(zeit, 2)
 minuten = Mid(zeit, 4, 2)
 sekunden = Mid(zeit, 7, 2)
 ret = 3600000 * Val(stunden) + 60000 * Val(minuten) + 1000 * Val(sekunden) + Val(Mid(zeit, 10))
 Return ret
 End Function
 
 
 Dim As String text, timecode, ausgabe, g, txt, timevon, timebis, trenner, nummer, inidatei, _
 timebismax, letzter
 Dim As Integer anfang, ende, x, timediff, buchstaben, naechster, voriger, silben, umschlag
 Dim As Double laenge, korrektur
 Dim As boolean fertig = FALSE
 
 
 inidatei = Left(Command(0), Len(Command(0)) - 3) + "ini"
 
 If Not FileExists(inidatei) Then 'inidatei anlegen
 Open inidatei For Output As #1
 Close 1
 EndIf
 
 
 'eingaben
 text = ini(inidatei, "text") 'name aus inidatei holen
 Print "    Textdatei: ";
 text = stringmod(text) 'namen eingeben / bearbeiten
 ini(inidatei, "text", text) 'neuen namen in inidatei schreiben
 Print
 
 If Open (text For Input As #1) Then
 Print "Textdatei nicht gefunden"
 Sleep
 End
 EndIf
 
 txt = Input(Lof(1), 1) 'gesamtes textfile in string laden
 Close 1
 
 timecode = ini(inidatei, "timecode")
 Print "Timecodedatei: ";
 timecode = stringmod(timecode)
 ini(inidatei, "timecode", timecode)
 Print
 
 If Open (timecode For Input As #2) Then
 Print "Timecodedatei nicht gefunden"
 Sleep
 End
 EndIf
 
 
 ausgabe = ini(inidatei, "ausgabe")
 Print " Ausgabedatei: ";
 ausgabe = stringmod(ausgabe)
 ini(inidatei, "ausgabe", ausgabe)
 Print
 
 'ausgabedatei öffnen
 If Open (ausgabe For Output As #3) Then
 Print "Konnte Ausgabedatei nicht öffnen"
 Sleep
 End
 EndIf
 
 
 'gesamtzahl der vokale ermitteln
 For x = 0 To Len(txt) - 1
 If InStr("aeiouäöüy", Chr(txt[x])) Then 'vokal
 silben += 1
 EndIf
 Next
 
 'zeiten aufaddieren
 Do
 Line Input #2, g
 If InStr(g, "-->") Then 'timecode
 timevon = Left(g, InStr(g, "-->") - 2)
 timebis = Mid(g, InStr(g, "-->") + 4)
 timediff += msec(timebis) - msec(timevon)
 EndIf
 Loop Until Eof(2)
 timebismax = timebis
 
 
 'variablen initialisieren
 laenge = silben / timediff 'wert für silben/ms berechnen
 korrektur = 1
 trenner = ".,;: "
 
 Print
 Print "Berechne Korrekturfaktor..."
 
 Do
 anfang = 1
 ende = 1
 Seek 2, 1 'dateizeiger zurücksetzen
 
 Do 'timecodedatei abarbeiten
 Line Input #2, g
 If InStr(g, "-->") Then 'timecode
 timevon = Left(g, InStr(g, "-->") - 2)
 timebis = Mid(g, InStr(g, "-->") + 4)
 timediff = msec(timebis) - msec(timevon) 'einblendzeit in ms
 silben = Int(timediff * laenge * korrektur + .5) 'anzahl der silben berechnen
 buchstaben = 0
 Do 'silben abzählen und anzahl der buchstaben ermitteln
 buchstaben += 1
 If InStr("aeiouäöüy", Chr(txt[anfang + buchstaben])) Then 'vokal
 silben -= 1
 EndIf
 Loop While silben
 
 naechster = InStr(anfang + buchstaben, txt, Any trenner) 'nächsten trenner suchen
 voriger = InStrRev(txt, Any trenner, anfang + buchstaben) 'vorhergehenden trenner suchen
 
 'zeiger auf ende des textabschnitts setzen
 If naechster = 0 Then
 ende = voriger
 ElseIf voriger = 0 Then
 ende = naechster
 ElseIf voriger < anfang Then
 ende = naechster
 ElseIf Abs(naechster - (anfang + buchstaben)) <= Abs(voriger - (anfang + buchstaben)) Then
 ende = naechster
 Else
 ende = voriger
 EndIf
 
 If (umschlag > 2) And (letzter = "time") Then 'werte in ausgabedatei schreiben
 Print #3, nummer
 Print nummer
 Print #3, g
 Print g
 g = Mid(txt, anfang, ende - anfang + 1)
 Do While InStr(g, "#")
 Mid(g, InStr(g, "#"), 1) = " "
 Loop
 Print #3, g
 Print g
 Print #3, ""
 Print ""
 fertig = TRUE
 EndIf
 
 If ende > anfang Then
 anfang = ende + 1 'zeiger auf beginn des nächsten textabschnitts
 Else 'text zuende
 If letzter = "time" Then
 umschlag += 1
 EndIf
 letzter = "text"
 korrektur -= .001 'korrekturfaktor vermindern
 Exit Do
 EndIf
 Do While txt[anfang - 1] = Asc(" ")
 anfang += 1
 Loop
 ElseIf Str(Val(g)) = g Then 'nummer
 nummer = g
 Else
 'ignorieren --> nächste zeile
 EndIf
 Loop Until Eof(2)
 
 If Eof(2) Then 'timecodes zuende
 If letzter = "text" Then
 umschlag += 1
 EndIf
 letzter = "time"
 korrektur += .001 'korrekturfaktor erhöhen
 EndIf
 Loop Until fertig
 
 Close
 Print "Fertig"
 Sleep
 
 | 
 
 http://users.freebasic-portal.de/grindstone/bin/Untertitel6u.exe
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 31.01.2019, 14:09    Titel: |   |  
				| 
 |  
				| Hi, 
 sorry für die späte antwort. ich hatte einen kleinen pc crash und kam nebenbei zu wenig... ich hoffe du verzeihst mir
   
 Das Programm funktioniert toll! Ich habe es ausprobiert und bin sehr begeistert. Du hast da einen tollen Job gemacht
   
 Ich würde deine Email oder deinen Namen noch ins Programm einfügen. Vielleicht will ich ein kleines Tutorial schreiben und das Programm (wenn ich darf) daei mit veröffentlichen. Dann wäre es sicher gut, wenn die Leute dich auch kontaktieren können
   
 Wäre es möglich das Programm auch batch-kompatibel zu machen?
 
 zb. wenn sich im verzeichnis jeweils textdatei und timecodedatei befinden würden mit leicht unterschiedlichen dateinamen?
 
 zb
 
 bravehearttext.txt
 bravehearttimecode.txt
 
 Das wäre natürlich noch praktisch und schick^^
 
 Lg
 
 Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 01.02.2019, 12:20    Titel: |   |  
				| 
 |  
				| Danke, es freut mich, daß dir das Programm gefällt.   
 
 Natürlich darfst du. Ist alles Open Source hier (Lizensierung  FBPSL). 	  | Zitat: |  	  | Vielleicht will ich ein kleines Tutorial schreiben und das Programm (wenn ich darf) daei mit veröffentlichen. | 
 
 
 Was genau meinst du damit? Daß das Programm in einem Rutsch mehrere Untertiteldateien erstellt, die in einer (Batch-) Datei aufgelistet sind? Sicher ginge das. Man könnte den Namen der Datei, die diese Liste enthält, z.B. beim Programmstart als Kommandozeilenparameter übergeben. 	  | Zitat: |  	  | Wäre es möglich das Programm auch batch-kompatibel zu machen? | 
 
 Ein kleiner Hinweis: Statt die Namen der Quelldateien einzutippen, kannst du sie auch einfach mit der Maus auf das Konsolenfenster ziehen. Das geht schneller und vermeidet Tippfehler.
 
 Gruß
 grinddstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 01.02.2019, 23:52    Titel: |   |  
				| 
 |  
				|  	  | grindstone hat Folgendes geschrieben: |  	  | Danke, es freut mich, daß dir das Programm gefällt.   
 
 Natürlich darfst du. Ist alles Open Source hier (Lizensierung  FBPSL). 	  | Zitat: |  	  | Vielleicht will ich ein kleines Tutorial schreiben und das Programm (wenn ich darf) daei mit veröffentlichen. | 
 
 
 Was genau meinst du damit? Daß das Programm in einem Rutsch mehrere Untertiteldateien erstellt, die in einer (Batch-) Datei aufgelistet sind? Sicher ginge das. Man könnte den Namen der Datei, die diese Liste enthält, z.B. beim Programmstart als Kommandozeilenparameter übergeben. 	  | Zitat: |  	  | Wäre es möglich das Programm auch batch-kompatibel zu machen? | 
 
 Ein kleiner Hinweis: Statt die Namen der Quelldateien einzutippen, kannst du sie auch einfach mit der Maus auf das Konsolenfenster ziehen. Das geht schneller und vermeidet Tippfehler.
 
 Gruß
 grinddstone
 | 
 
 Es funktioniert sehr gut!
  Ganz toll! 
 Ich würde vielleicht noch deinen namen,emailadresse, homepage ins programm hinzufügen, damit man dich auch kontaktieren kann, evtl. auch für prommierjobs
  Abgesehen davon ist es ja auch ein Programm, das den Namen des Programmierers verdient. 
 Ja, ein batch-modus wäre praktisch...
 
 Ginge das vielleicht nach dateinamen?
 
 ich bekomme zb folgende dateinamen nach umwandlung heraus:
 
 bravehearttext.txt
 bravehearttimecode.txt
 
 liese sich so etwas zb automatisiert zusammenführen?
 
 lg
 
 Klen
 |  |  
		| Nach oben |  |  
		|  |  
		| grindstone 
 
 
 Anmeldungsdatum: 03.10.2010
 Beiträge: 1283
 Wohnort: Ruhrpott
 
 | 
			
				|  Verfasst am: 03.02.2019, 16:08    Titel: |   |  
				| 
 |  
				| Ich bin immer noch nicht sicher, ob ich dich richtig verstanden habe. Meinst du das so, daß du im Programm -um bei deinem Beispiel zu bleiben- "braveheart" eingibst (evtl. mit Pfadangabe), und das Programm die Dateien "bravehearttext.txt" und "bravehearttimecode.txt" als Eingabedateien öffnet und "braveheart.srt" als Ausgabedatei anlegt? Natürlich ginge das. 
 Oder soll das Programm nach dem Starten in einem bestimmten Verzeichnis (entweder seinem eigenen oder einem angegebenen) nach Dateien suchen, die mit "...text.txt" und "...timecode.txt" enden und daraus die passenden 3 Dateinamen generieren? Auch das wäre möglich.
 
 Gruß
 grindstone
 _________________
 For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
 |  |  
		| Nach oben |  |  
		|  |  
		| klendathu 
 
 
 Anmeldungsdatum: 18.01.2019
 Beiträge: 21
 Wohnort: Dortmund
 
 | 
			
				|  Verfasst am: 03.02.2019, 17:57    Titel: |   |  
				| 
 |  
				| Hi grindstone, 
 ich meinte die zweite variante. wenn das programm ein verzeichnis automatisch bearbeiten könnte, wäre das echt klasse.
 
 dein beispiel ist sehr gut! Es wäre toll, wenn das programm den jeweiligen Film, zb "Braveheart", "Hannibal", "Star Wars" automatisch als Titel erkennt und man dann entweder die jeweilige Endung, die dann auf alle Dateien passt, die sich im Verzeichnis befinden, eingibt, oder das Programm dies automatisch erkennen kann.
 
 Eine Idee wäre, Vielleicht könnte es praktisch sein für den Batch-Modus Optionen aufzubauen
 
 in der Regel sind timcodedateien Dateien mit der Dateieindung .srt
 Text des Films endet in der Regel mit der Endung .txt
 
 Das könnte Option 1 sein
 
 Dann könnte Option 2 sein, eine Endung des Dateinamens selbst einzugeben, in etwa wie in deinem Vorschlag
 
 Das Programm könnte zb ähnliche Dateinamen erkennen (wenn das möglich ist) und man dann die Endung eingeben. Wie im Braveheartbsp.
 
 Oder als Option 3:
 
 Kleinere Dateien sind immer Timecodedateien
 größere Dateien sind immer Textdateien
 bzw. das ganze umgekehrt...
 
 Wäre so etwas denn überhaupt möglich?
 
 Lg Klen
 |  |  
		| Nach oben |  |  
		|  |  
		|  |  
  
	| 
 
 | Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten.
 Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
 Du kannst deine Beiträge in diesem Forum nicht löschen.
 Du kannst an Umfragen in diesem Forum nicht mitmachen.
 
 |  |