bimbie
Goto Top

Auslesen von Cropwerten aus einer Textdatei

Hallo Leute,
Ich habe bereits mehrere Probleme bei der Batchprogrammierung gehabt, die jedoch fast alle durch Beiträge in diesem Forum beantwortet wurden. Das ist auch der Grund, weshalb ich mich hier angemeldet habe.

So, dann also zum für mich bisher unlösbaren Problem:

Ich sehe unterwegs gerne Filme auf meinem Palm und encodiere und konvertiere deshalb ab und an DVDs bzw. Videos. Bevor ich mir ein kleines Batchscript geschrieben hatte, habe ich meine Videos mit dem MEncoder "per Hand" encodiert. Nun habe ich mir eine Batchdatei erstellt, die das ganze automatisieren soll. Bisher allerdings lasse ich mir in der Konsole die Cropwerte mit dem MPlayer anzeigen und muss sie dann wiedereinmal per Hand in einen String eingeben. Ich kann mir mit dem MPlayer eine Textdatei erstellen lassen, in der die Cropwerte notiert sind, allerdings möchte ich auf andere Programme verzichten, also darauf die Textstelle mit eine Hochsprache wie Java oder C++ auszulesen. Stattdessen wollte ich das direkt mit dem Batchscript machen, allerdings komme ich mit den for-Schleifen nicht ganz klar und weiß nicht, wie ich die Textstelle in einen String bzw. mehrere Variablen lesen soll.

Die Textdatei sieht am Ende so aus:
[...]
A: 792.9 V: 792.9 A-V: 0.001 ct: -0.161 434/434 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 792.9 V: 793.0 A-V: -0.031 ct: -0.164 435/435 3% 0% 24.0% 6 0 [CROP] Crop area: X: 2..717 Y: 71..505 (-vf crop=704:432:8:74).
A: 793.1 V: 793.0 A-V: 0.061 ct: -0.164 436/436 3% 0% 24.0% 6 0

Exiting... (Quit)


es interessiert mich aber nur der Teil hinter crop=:
704:432:8:74

Eine weitere Schwierigkeit ist, dass die Ziffernfolgen nicht bei jedem Video die gleiche Länge haben so könnten andere Cropwerte beispielsweise so aussehen: 704:432:10:80
Ich könnte mir das so vorstellen: Nach dem ersten "=" in der Zeile suchen und den Teil danach auslesen und ")." abschneiden. Ich weiß allerdings weder, wie ich die vorvorvorvorletzte Zeile auslese, noch, wie ich diese "beschneide".

Wenn es also überhaupt eine Möglichkeit gibt, dieses Problem mit einer Batchdatei zu bewerkstelligen, wäre ich um jede Hilfe und Bemühung dankbar.

Gruß Bimbie

Content-Key: 183672

Url: https://administrator.de/contentid/183672

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: 60730
60730 18.04.2012 um 01:01:41 Uhr
Goto Top
morsche,

aber wir haben hier doch eine 1a Tutinummer für das, was man unter for /? nicht verstehen könnte?

  • Nach dem ersten "=" in der Zeile suchen und den Teil danach auslesen
C:\>for /f "tokens=2 delims==" %a in ('findstr "crop" "x:\123.txt"') do echo %a

C:\>echo 704:432:8:74).
704:432:8:74).

C:\>echo 704:432:8:74).
704:432:8:74).

C:\>for /f "tokens=2 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a

C:\>echo -vf crop
-vf crop

C:\>echo -vf crop
-vf crop

C:\>
  • es interessiert mich aber nur der Teil hinter crop=:
  • 704:432:8:74

C:\>for /f "tokens=3 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a

C:\>echo 704:432:8:74
704:432:8:74

C:\>echo 704:432:8:74
704:432:8:74

C:\>

wie man das zu einer batch machen kann, das hab ich vergessen. Sollte man aber herausfinden können.

N8 und grünen Haken nicht vergessen.
Mitglied: Bimbie
Bimbie 18.04.2012 um 01:14:03 Uhr
Goto Top
Wow, so schnell habe ich noch nie eine Antwort bekommen, danke!
Ich habe morgen Schule und werde es erst danach ausprobieren (ich muss mich jetzt mal aufs Ohr hauen).
Nochmals vielen Dank und gute Nacht!
Mitglied: Bimbie
Bimbie 18.04.2012 um 01:48:34 Uhr
Goto Top
Ich habe es mir dann doch gleich angeguckt, läuft super, auch wenn ich es nur halb verstehe. Ich werde mir die einzelnen Bestandteile morgen aber in Ruhe noch einmal anschauen.
Kompliment an dich TimoBeil: genial schnell.
Chiao
Mitglied: Skyemugen
Skyemugen 18.04.2012 um 07:17:43 Uhr
Goto Top
die jedoch fast alle durch Beiträge in diesem Forum beantwortet wurden.

... und wenn man nur ein klitzekleinwenig herumgestöbert hätte oder die Suchfunktion genutzt hätte oder auch ins
Tutorial zur FOR-Schleife geschaut hätte, dann ... klar, bei solchen Überschriften wird der nächste User auch nichts finden ... auslesen von Cropwerten ... Leute Leute ...

nunja, wieder einer mehr für die Sammlung der meist-durchgekauten-Themen ...

@t-mo, was' los, nachtaktiv == erklärungsbereit? Kennt man ja gar nicht mehr von dir face-wink

greetz André
Mitglied: 60730
60730 18.04.2012 um 20:45:21 Uhr
Goto Top
Moin,
(ot)
Zitat von @Skyemugen:
@t-mo, was' los, nachtaktiv == erklärungsbereit? Kennt man ja gar nicht mehr von dir face-wink
Naja, die tatsache, dass ich hier code mit somderzeichen hinterlassen habe, spricht dafuer, dass vaddern des naechtens an der werkbank war. Isch haabe doch gar keine m$ auto zuhause..
Und wenn ich denn wirklich ueber meinen schatten gesprungen bin, ueberteibs nicht, mit der lobhudelei face-wink

Erklaert waere, wenn ich sowohl
C:\>for /f "tokens=3 delims=(=)" %a in ('findstr "crop" "x:\123.txt"') do echo %a 
Als auch
C:\>for /f "tokens=2 delims==)" %a in ('findstr "crop" "x:\123.txt"') do echo %a 
Hier hingeschrieben haette mit der gegenfrage, wo liegt der unterschied und warum kommt das gleiche dabei raus.
(/ot)

greetz André
Zurueck