Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Suchen & Ersetzen in PGN
- - By Timo Haupt Date 2012-01-31 23:08
Hallo zusammen,

kennt jemand ein Tool, welches Suchen & Ersetzen mit erweiterten Optionen erlaubt? Konkret geht es um folgenden Anwendungsfall:

In PGN-Dateien soll bei jeder Partie das Feld [Round "x.y"] editiert werden. Hierbei muss mit den beiden Variablen x und y so umgegangen werden:
- Falls x ungerade, dann ersetze x durch (x+1)/2 und setze y auf 1.
- Falls x gerade, dann ersetze x durch x/2 und setze y auf 2.

Beispiele:
[Round "5.1"] soll zu [Round "3.1"] werden.
[Round "18.3"] soll zu [Round "9.2"] werden.
[Round "281.4"] soll zu [Round "141.1"] werden.
[Round "488.2"] soll zu [Round "244.2"] werden.

Dieses Tool wäre sehr, sehr hilfreich für mich. Falls es so etwas nicht gibt und ein Softwareentwickler mitliest: Ein Tool, welches das oben beschriebene Verfahren beherrscht, ist sicherlich von einem erfahrenen Entwickler in ca. 15min geschrieben (ich selbst würde sicherlich viel länger brauchen, habe seit Jahren nicht mehr programmiert und bin total aus der Übung). Ich würde mich sehr freuen, wenn mir jemand so ein Programm zur Verfügung stellen könnte - selbstverständlich wäre mir das auch eine Aufwandsentschädigung wert.

Viele Grüße
Timo
Parent - - By Benno Hartwig Date 2012-02-01 09:35 Edited 2012-02-01 09:41
Ich habe mal auf die Schnelle was mit VB-Script hingeschmuddelt.
Du kannst es ja mal ausprobieren.

Lege bitte unter einem Windows-BS eine Textdatei 'umsetzung.vbs' an, in die du hineinkopierst:

Code:
qname = wscript.arguments.item(0)
set FSO=createObject ( "Scripting.FileSystemObject")
set qfile = FSO.openTextfile(qname,1)
set zfile = FSO.openTextfile(qname&".erg",2,true)

do until qfile.AtEndOfStream
    zeile=qfile.readLine
    if left(zeile,8)="[Round """ then
     p1=instr(8,zeile,".")
     zahl1=mid(zeile,9,p1-9)
     if zahl1 mod 2 = 1 then
      zeile="[Round """ & (zahl1+1)/2 & ".1""]"
     else
      zeile="[Round """ & zahl1/2 & ".2""]"
     end if
    end if
    zfile.writeline(zeile)
loop

zfile.close
qfile.close

Und eine zweite Textdatei 'umsetzung.bat', die dieses Script aufruft

Code:
set DAT=eingabe1.txt
cscript /Nologo umsetzung.vbs %DAT%
notepad %DAT%.erg

Dann kannst du so die Datei eingabe1.txt einlesen und es wird dir eingabe1.txt.erg erzeugt mit den von dir gewünschten Änderungen. (Doppelklick auf 'umsetzung.bat')

Das Script ist natürlich sehr simpel und fordert Eingaben, genau wie du sie beispielhaft nanntest.
Ansonsten müsste man es noch aufpeppen.
Diese Forderungen sind z.B.
- "[Round" muss immer zu Beginn der betreffenden Zeilen stehen
- keine zusätzlichen Blanks in diesen Zeilen
-  nach dem ] keine weiteren Zeichen
- ...

Probiere es doch einfach mal aus.
Vielleicht reicht es dir ja schon.

Benno
Parent - - By Timo Haupt Date 2012-02-01 14:48
Hallo Benno,

was soll ich sagen? Es funktioniert phantastisch! Das war genau das, was ich brauchte! VIELEN HERZLICHEN DANK! Bitte sende mir deine Kontonummer per PM, damit ich dir die Aufwandsentschädigung überweisen kann.

Mein Tag ist jedenfalls gerettet! 

Viele herzliche Grüße,
Timo
Parent - By Benno Hartwig Date 2012-02-01 15:00
[quote="Timo Haupt"]Mein Tag ist jedenfalls gerettet!  [/quote]*freu*
Benno
Up Topic Hauptforen / CSS-Forum / Suchen & Ersetzen in PGN

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill