PureBoard
https://www.purebasic.fr/german/

String Parser
https://www.purebasic.fr/german/viewtopic.php?f=11&t=8354
Seite 1 von 1

Autor:  Konne [ 13.05.2006 07:09 ]
Betreff des Beitrags:  String Parser

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:
<!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:
HTML.s+"LINIE"

zu bringen und " zu ersetzen machen wir folgendes Script:

(-> Parameter)

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


Fertig

Bei fragen rueckmeldungen usw, alles ist herzlich willkommen.

Autor:  Nik [ 13.05.2006 20:44 ]
Betreff des Beitrags: 

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:
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:
Test1
Test2
Test5
Test3
Test4

folgendes machen:
Code:
!Test1
!Test2
!Test5(FUENF)
!Test3
!Test4


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

Autor:  Konne [ 14.05.2006 02:00 ]
Betreff des Beitrags: 

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:
Write String
!



Write Output
(FUENF)
Test5

= (Equal)
IfOutput
!
Test5

= (Equal)
Write String
(FUENF)
Test5

= (Equal)
Endif
(FUENF)
Test5

= (Equal)
Write Break
(FUENF)
Test5

= (Equal)


Autor:  Kaeru Gaman [ 15.05.2006 10:25 ]
Betreff des Beitrags: 

Konne hat geschrieben:
... um MobyDick in ein anderes Format umzuschreiben um es als meines augeben zu koennen. :)


shame on you, pal. cheater!

Autor:  Konne [ 17.05.2006 21:20 ]
Betreff des Beitrags: 

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

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/