Krass... Tausend Dank...
Das hilft mir total...
Krass... Tausend Dank...
Das hilft mir total...
Ich versuche verzweifelt tausende von Links in hunderten von XML-Dateien in eine neue Form zu bringen.
Das geht nur mit RegEx richtig gut. Leider ist es auch das Thema, was mich zur Verzweifelung bringt. Ich kann einfach keine RegEx. Das will einfach nicht in meinen Kopf.
Ich hoffe, ihr könnt helfen! Nachfolgend mein Code zum testen. Ich erkläre mal kurz:
$memo_alt ist das, was ich aus der XML-Datei auslese also mein Ausgangslink.
$memo_neu ist das was dann anstelle des $memo_alt in die XML-Datei zurück geschrieben werden soll.
Ich schaffe es einfach nicht, den alten String so umzubauen das der neue raus kommt.
Eigentlich brauche ich ja vom alten String nur die URL also das ab http bis " aber das will einfach nicht!!!
;memo_alt ist der Original-String (width="78%" height="210" können unterschiedliche Werte haben. Die URL ändert sich natürlich auch ständig)
$memo_alt = '<Memo name="Hilfe" xml:lang="de" text="<iframe width="78%" height="210" src="http://hilfe.xyz.net/C12571BE003B1692/vwSVPoutID/ALAN78GH6U939" frameborder=0 marginwidth=0 marginheight=0></iframe>"/>'
;memo_neu ist der Soll-String. (So soll er am Ende aussehen.)
$memo_neu = '<Memo name="Hilfe" xml:lang="de" text="<a target="_blank" href="http://hilfe.xyz.net/C12571BE003B1692/vwSVPoutID/ALAN78GH6U939">Hier gibt es Hilfe</a>"/>'
$output = StringRegExpReplace( $memo_alt, "", "")
MsgBox(0,"Ausgabe:", $output)
;Check ob korrekt
If $output = $memo_neu Then
MsgBox(0,"Überprüfung", "Der String ist korrekt")
Else
MsgBox(0,"Überprüfung", "Der String ist NICHT korrekt")
EndIf
Exit
Alles anzeigen
Ich mache ein neues Thema auf, welches aussagekräftiger ist. Außerdem haben sich Bedingungen geändert.
Naja. Du hast recht, der Titel ist vielleicht etwas ungünstig gewählt. Vielleicht liegt das auch etwas an meiner Verzweifelung.
Ich habe allerdings schon ein Problem, den oberen Quellcode in einen String zu bekommen durch seine doofe Mischform an Anführungszeichen.
Hallo zusammen.
Ich stehe mal wieder vor einem Problem, welches sich scheinbar nur mit RegEx lösen lässt. Leider bin ich irgendwie zu blöd, das Thema RegEx zu verstehen. Nun hoffe ich auf Eure Hilfe.
Ich habe eine große Anzahl von Links in einem XML zu ändern. Dabei gibt es einige Variablen in diesen Links sodass ich mit einfachem Suchen/Ersetzen nicht weiter kommen.
Der Tag im XML sieht in etwa so aus:
<Memo name="Link" xml:lang="de" text="<iframe width='78%' height='210' src='http://info.xyz.net/C12571BE003B1692/vwSVPoutID/ALAN78GH6U939' frameborder=0 marginwidth=0 marginheight=0></iframe>"/>
Das, was am Ende dabei rauskommen soll ist folgendes:
<Memo name="Link" xml:lang="de" text="<a target="_blank" href="http://info.xyz.net/C12571BE003B1692/vwSVPoutID/ALAN78GH6U939">Hier geht es zur Hilfe</a>"/>
Das Problem, welches ich habe ist dass im Ausgangstag ein iFrame mit width und height angegeben ist, welche unterschiedliche Werte beinhalten können.
Auch die Links sind natürlich immer andere. Ich bekomme das einfach nicht hin.
Kann hier bitte, bitte jemand helfen
Perfekt. Danke! So klappt's
Also... Ich habe das nun nochmal mit
[autoit][/autoit][autoit][/autoit][autoit]$URL_start = 'http://'
$URL_ende = '"/>'
$URL_raw = _StringBetween($file_content, $URL_start , $URL_ende, -1)
[/autoit][autoit][/autoit][autoit][/autoit]
versucht. Das geht auch soweit. Allerdings fehlt mir im Array dann die Protokoll-Angabe (also das http://). Gibt es eine Möglichkeit, das wieder in jeden Eintrag des Arrays vorne an zu hängen? Dann würde ich in einem zweiten Durchgang das gleiche noch einmal mit https:// machen und die Arrays dann verbinden.
Gruß, Matthias
Ich doof, ich... Klar hab ich ja bei _StringBetween die Werte im Array...
Okay. Das wäre ja die eine Möglichkeit.
Gibt es vielleicht noch eine einfachere Möglichkeit die Links zu finden? Also z.B alles was mit "http://" bzw. "https://" beginnt?
Hallo Forum.
Ich stehe vor der Herausforderung gut 6000 XML-Dateien zu untersuchen und die Werte gewisser Tags in eine CSV zu schreiben.
Diese Tags enthalten Links die ich auflisten muss.
Ein solcher Tag sieht in etwa so aus:
<Tag name="URL_1" xml:lang="de" text="https://www.google.com"/>
oder
<Tag name="Bild_1" xml:lang="de" text="http://www.blabla.com/picture1.jpg"/>
Nun kann es aber auch sein, dass diese Tags mehrfach in der selben Datei vorkommen könnten.
Ich habe versucht die Datei mit FileRead einzulesen und dann mit
$URL_1_start = '<Tag name="URL_1" xml:lang="de" text="'
$URL_1_ende = '"/>'
$URL_1_raw = _StringBetween($file_content, $URL_1_start , $URL_1_ende, -1)
[/autoit]an die Werte zu kommen. Das funktioniert. Aber eben nur für das erste Vorkommen innerhalb der Datei.
Hat jemand eine Idee, wie ich an alle Werte komme? Ich finde da keinen richtigen Ansatzpunkt.
Gruß, Matthias
Yesss...
Sauber, Schnitzel. Vielen Dank.
Ich liebe dieses Forum!!!
Hallo zusammen.
Ich schicke einen Aufruf an einen Web-Service. Zurück bekomme ich sowas hier:
<?xml version="1.0" encoding="UTF-8"?>
<returndata>
<success code="200" remaining="998" resetdate="1401099136" />
</returndata>
Nun möchte ich gerne die drei Key-Value-Paare in Variablen übernehmen.
Also success code="200", remaining="998" und resetdate="1401099136" sollen zu
$success_code = "200"
$remaining = "998"
$resetdate = "1401099136"
werden.
Irgendwie bekomme ich das nicht hin. Ich dachte an so Sachen wie StringCompare mit RegExp. oder StringRegExp
Aber die RegExp. schaffen mich. Ich bin dafür zu blöd oder so
Gibt es noch einen anderen Weg um an meine Daten zu kommen oder könnte jemand mal ein Beispiel zeigen? Aus der Hilfe werde ich leider auch nicht schlauer.
Gruß,
Matthias
Cool... Das sieht gut aus...
Vielen Dank!
Hallo zusammen.
Ich versuche gerade, eine GUI zu bauen, deren Inhalt deutlich größer als die GUI selber ist.
Also soll sie scrollbar sein. Ich hab da mal schnell was zusammen gebastelt, aber es will nicht so, wie ich es will...
Der V-Scrollbalken ist zwar da, will aber die GUI nicht bewegen.
Wie bekomme ich das hin. Hier mein Beispiel-Code:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Die GUI", 600, 600, 200, 200, BitOR($GUI_SS_DEFAULT_GUI, $WS_VSCROLL))
$Edit1 = GUICtrlCreateEdit("", 20, 30, 530, 500)
GUICtrlSetData(-1, "Das ist das erste Edit-Fenster")
$Edit2 = GUICtrlCreateEdit("", 20, 540, 530, 500)
GUICtrlSetData(-1, "Das ist das zweite Edit-Fenster")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Gruß,
Matthias
Danke... So wird's was... Chip liefert genau das, was ich suche!
Aber auch der Ansatz von AspirinJunkie ist nicht uninteressant.
Ich Schau mir beides mal an. Danke euch!!!
Hallo zusammen.
Ich bin mir nicht ganz sicher, wie ich mein Problem beschreiben soll. Ich versuche es einfach mal und hoffe, ihr versteht, was mein Problem ist.
Ich möchte eine GUI dynamisch aus einer CSV-Datei aufbauen.
Der Aufbau der GUI ansich ist immer der Selbe. nur die Anzahl der Elemente in der CSV-Datei und somit auch in der GUI kann sich immer ändern.
Mal genauer:
In der CSV-Datei sind 3 Spalten definiert. wert1;wert2;wert3.
Der dynamische Teil der GUI soll wie folgt aussehen:
Ein Lable dass wert1 aus der CSV als Text ausgeben soll.
Ein LableTip was wert2 zugewiesen bekommen soll und
Ein Input das wert3 als Text ausgeben soll.
Die CSV-Datei lade ich in einen Array und Splitte sie auf. Bis hierhin kein Problem.
Jetzt kann es sein, dass ich mal 20 Zeilen in dem CSV habe, mal 35 oder mal 154 <- Keine Ahnung, daher ja dynamisch.
Mir ist jetzt vollkommen schleierhaft, wie ich die GUI aufbauen soll, damit sie immer die richtige Anzahl von Lable's und Inputs erstellt. Variablen kann ich ja dynamisch nicht erzeugen, um sie zur Zuweisung der GUI-Elemente in einer Schleife zu verwenden.
Versteht ihr, was ich meine? Wie bekomme ich das hin? Ich habe absolut keine Idee, dieses Problem zu lösen außer vorher 200 Lables und Inputs in Variablen zu definieren und sie auszublenden, wen deren wert leer ist. Das finde ich allerdings sehr unschön und macht ne Menge Arbeit. Hat hier jemand vielleicht eine bessere Idee?
Noch was: Wie bekomme ich es hin, dass ich eine Scrolleiste bekomme, wenn die Lables und Inputs die Größe der GUI überschreiten? Nur durch einen ListView oder gibt es noch eine andere Möglichkeit?
Danke & Gruß,
Matthias
Die Idee von x0r klappt... allerdings nur kompiliert... Das sollte mich aber nicht weiter stören
Vielen Dank an alle
Hallo zusammen.
Ist es irgendwie möglich, dass sich ein Script (und natürlich das hinterher kompilierte Programm) von selber neu startet?
Hintergrund meiner Frage: Ich schreibe ein mehrsprachiges Script. Die Spracheinstellung und andere User-Vorgaben speichere ich in einer INI-Datei. Wenn ich nun Änderungen an den Einstellungen vornehme sollen diese natürlich wieder aus der INI-Datei gelesen werden. Dazu ist aber auch ein Neustart des Scripts nötig.
Ich hab schon rumgesuch nach reload, refresh oder in der Art. Leider bin ich da nicht fündig geworden.
Gibt es sowas wie eine Neustart-Funktion bzw. kann ich mein Script dazu veranlassen sich neu zu starten?
Gruß, Matthias
NATÜRLICH *klatschvornkopp* nen Timer... Ich Honk...
Manchmal sieht man den Wald vor lauert Bäumen nicht...
Danke Oscar, für den superschnellen Wink mit dem Baum
Hallo zusammen.
Ich habe da ein Problem, welches ich nicht gelöst bekomme.
Ich habe eine While-Schleife in der die GUI angezeigt wird und auf eventuelle interaktion des User wartet. Nun möchte ich das während die GUI angezeigt wird, z.b. alle 10 sek. eine vom User unabhänige Aktion ausgeführt wird z.b. ein SplashText angezeigt wird.
Das bekomme ich einfach nicht hin. Wenn ich in die While-Schleife z.B ein Sleep(10000) einbaue, ist die GUI in den 10 sek. nicht bedienbar. Wenn ich z.b. einen Zähler einbaue, der alle 1000 Durchläufe meine Aktion ausführt, funktioniert das auch nicht. Denn scheinbar läuft die Schleife schneller, sobald ich die Maus bewege...
Wie bekomme ich das anders hin??? Hat jemand eine Idee für mich?
Gruß, Matthias
Tatsächlich...
Warum auch immer das bei mir nicht aus einer Batch aufruft... Aber "per Hand"geht's...
Vielen Dank nochmal!!!