String Parser

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

String Parser

Beitrag von Konne »

Dieses Tool ist aus der Not entstanden dass ich einfach keinen Bock mehr hatte stupide stummfsinnige PB Code bisschen umwandeln um woanders verwenden zu koeenne hatte. Nunja Hier ist mal ein Bsp was ich meine:

Folgendes muss mit PB in eine Datei geschrieben werden:

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Meine Bilder</title>
</head>

<body>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function Bildfenster(fensterbreite,fensterhoehe,url,target,bild,bildtext) {
var fenster, bildschirmbreite, bildschirmhoehe, fenstereigenschaft;
bildschirmbreite=screen.width;
bildschirmhoehe=screen.height;
// Du kannst natürlich left und top auch fest definieren
fenstereigenschaft="left="+(bildschirmbreite-fensterbreite)/2+" "+", top="+(bildschirmhoehe-fensterhoehe)/2+ ", height="+fensterhoehe + ", width="+fensterbreite;
fenster=window.open(url,target,fenstereigenschaft);
fenster.focus();
fenster.document.open();
with (fenster) {
document.write('<html><head><title>?</title></head>');
document.write('<body onblur="window.close()" leftmargin="0" topmargin="0">');
document.write('<img src="'+ bild +'"border="0"><br>'+bildtext);
document.write('</body></html>');
fenster.document.close();
}
}
//-->
</SCRIPT>
Nunja ich muesste dass jetzt alles durchgehen und ueberall " durch chr(34) ersetzen usw viel arbeit und stumpfsinnig. Daher folgendes Tool:

http://sceneproject.org/~konne/String poarser.zip

Man kann diese umwandlung mit ein paar einfachen Commands in unter 30 sec in die richtige Form bringen.

Zur Handhabung:
Im Ersten tab wird via Strg+V der zu transformierende text eigenfuegt.
Dann Geht man zu "Skript" und hier faengt der spass an. Es steht einem eine grosses befehlsset der PB Stringlkib zur verfuegung.

Das System ist folgendes:
Die Inoutliste wird Zeile fuer Zeile durchgegangen. Dabei wird das Script immer auf jede Zeile angewendet. Es wird aus der Dropdownliste ein Befehl ausgewaehlt. Nun kann man die Parameter angeben fuer den befehl. Mit "+" kann man den Befehl zur Liste hinzufuegen, mit Update (Rundes blaues ding) wird das ausgewaehlte element ueberschrieben mit den Pfeilen kann man die Elemente rumbewegen und mit "GO" kann man das Script rendern und es wird nach Output ausgegeben. Delte loescht das ausgewaehlte icon. Mit Save kann man das Skript speichern mit load kann man ein altes Laden.

Die Befehle funktionieren folgendermassen.
Die meisten befehle (zwischen der 1 und 2 Trennlinie nehmen alle den 'Output' und schreiben ihre Transformation wieder in den Output. Mit WriteOutput kann der 'Output' ausgegeben werden, mit 'Root in Output' wird der InputBlock ins Output geladen. (Am anfang wird standartmaesig der InputBlock ins Output geladen). Die Befehle vor der 1 trennlinie schreiben ihre parameter sofort in die Ausgabedatei und veraendern den Output NICHT (Unter ausnahme von 'Root in Output' )
If vergleicht den Output mit dem parameter und entscheidet daraufhin ob zu esle gesprungen werden soll oda nicht.

Nunja mal ein Bsp:
Um den Oberen Code in eine Form

Code: Alles auswählen

HTML.s+"LINIE"
zu bringen und " zu ersetzen machen wir folgendes Script:

(-> Parameter)

Code: Alles auswählen

WriteString -> HTML.s+"
ReplaceString -> " -> "+Chr(34)+"
WriteOutput
WriteString -> "
WriteBreak
Fertig

Bei fragen rueckmeldungen usw, alles ist herzlich willkommen.
Nik
Beiträge: 132
Registriert: 04.02.2005 19:57

Beitrag von Nik »

Der link ist schrott konne, hier ist der richtige inklusive rechtschreibfehlerkorrektur:

http://sceneproject.org/~konne/String-Parser.zip

Außerdem tut er glaub net immer was er soll,

Code: Alles auswählen

Write String
!



IfOutput
!
Test5

= (Equal)
Write Output
(FUENF)
Test5

= (Equal)
Write String
(FUENF)
Test5

= (Equal)
Write Output
(FUENF)
Test5

= (Equal)
Write Break
(FUENF)
Test5

= (Equal)
Else
(FUENF)
Test5

= (Equal)
Write Output
(FUENF)
Test5

= (Equal)


Sollte doch aus

Code: Alles auswählen

Test1
Test2
Test5
Test3
Test4
folgendes machen:

Code: Alles auswählen

!Test1
!Test2
!Test5(FUENF)
!Test3
!Test4
es macht aber folgendes draus:

Code: Alles auswählen

!Test1!Test2!Test5(FUENF)Test5
!Test3!Test4
www.KoMaNi.de
Eine kleine Gruppe von Hobby Programmierern, die gerade einen Instant Messenger natürlich in PureBasic schreiben.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

lol ich bin echt ausm deutsch drausen. Nunja danke. Kann sein dass es bugs hat hab ich in einem tag geschrieben um MobyDick in ein anderes Format umzuschreiben um es als meines augeben zu koennen. :)

Dein Code wuerde funktionieren wenn du 'Write Break' am ende einfuegst!
Das BREAK wird fuer mehr moeglichkeiten nicht automatrisch reingehauen. Zudem ist dir vielleicht nicht klar das WriteString nicht in den Output sondern direkt ins File schreibet. Means folgender Code macht genau was du willst:

Code: Alles auswählen

Write String
!



Write Output
(FUENF)
Test5

= (Equal)
IfOutput
!
Test5

= (Equal)
Write String
(FUENF)
Test5

= (Equal)
Endif
(FUENF)
Test5

= (Equal)
Write Break
(FUENF)
Test5

= (Equal)

Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Konne hat geschrieben:... um MobyDick in ein anderes Format umzuschreiben um es als meines augeben zu koennen. :)
shame on you, pal. cheater!
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Konne
Beiträge: 764
Registriert: 30.03.2005 02:20
Kontaktdaten:

Beitrag von Konne »

Ich hab nicht die Zeit Buecher zu lesen! Ich nenne das 'Nutzung von vorhandenen Resourcen!'. Das iNet ist nunmal fuer sowas sehr gut geeignet!
Antworten