| |
|
|
Richi | Hallo, ich möchte einen Text mit @MemPos mehrfach durchsuchen. Nur bei der Positionierung, der zweiten Abfrage scheine ich einen Denkfehler zu haben ? KompilierenMarkierenSeparierenDeclare Dateigröße%,Put$,Daten#
Put$ = "C:\Geladene-Seite.txt"
lesen:
Dateigröße% = @FileSize(Put$)
Print "Dateigröße% = ";Dateigröße%;" Bytes"
Dim Daten#,Dateigröße%+100
ReadText Daten#,Put$
'---------------------test-------------------------
declare pos1%,pos2%,start%,anzahl%,pos3%,pos4%
start% = 0
pos1% = @MemPos(Daten#,start%,"<")' Suche von von Position 0
pos2% = @MemPos(Daten#,start%,">")' Suche von von Position 0
anzahl% = pos2% - pos1%' Berechne die Zeichen zwischen den Fundstellen
print "von:";pos1%;" bis ";pos2%;" Zeichen gefunden: "; @Char$(Daten#,pos1%, anzahl%+1)' Ausgabe der gefundenen Zeichen OK
start% = pos2%+1' Zeiger an die letzten Fund-Position +1
print "start%=";start%
' ------------------------- AB HIER ???
pos3% = @MemPos(Daten#,start%,"<")' ERWARTE SUCHE VON POSITION 9 = start% ???????????????
pos4% = @MemPos(Daten#,start%,">")' ERWARTE SUCHE VON POSITION 9 = start% ???????????????
anzahl% = pos4% - pos3%' Berechne die Zeichen zwischen den Fundstellen
print "von:";pos3%;" bis ";pos4%;" Zeichen gefunden: "; @Char$(Daten#,pos3%, anzahl%+1)' Ausgabe der gefundenen Zeichen / Erwartet wäre:'<befehl1>' ???
Print "Waitkey"
waitkey
Dispose Daten#
end
Meine Geladene-Seite.txt: KompilierenMarkierenSeparieren Ausgabe: Bild im Anhang bzw siehe unten
Ich würde erwarten das die Ausgabe mir folgendes ausgibt:
<body> <befehl1>
Wo ist mein Denkfehler oder unterliege ich einen Bug ??? Ich bastle da schon zwei Tage herum.
Danke für die Hilfe
|
|
|
| |
|
|
|
Jörg Sellmeyer | posx% ist ja kein absoluter Wert, sondern MemPos zählt ab der neuen Startposition die Bytes bis zur nächsten Fundstelle - hier also 2.
So funktioniert es: @Char$(Daten#,start% + pos3%, anzahl%+1) Du musst also die Position/start% immer "mitführen". |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 15.11.2013 ▲ |
|
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 15.11.2013 ▲ |
|
|
|
|
Richi | Hallo Jörg,
ich möchte so was wie in PHP die String-Funktion strip_tags machen, wo alle HTML Befehle entfernt werden. Da ich nicht alle HTML Befehle angeben möchte usw würde ich einfach alles zwischen < und > aus dem Text entfernen.
2. Nun hätte ich wahrscheinlich auch Sachen wie href Links im Text stehen die sollte ich natürlich zu vor heraus suchen können
Ich habe jetzt meine Routine so verknotet das ich nicht mehr durchblicke Ich fange glaub noch mal morgen neu an
Für Ideen und Anregungen Danke auch für deine Hilfe |
|
|
| |
|
|
|
H.Brill | Vielleicht helfen da auch die regulären Ausdrücke, etwa so : Match$("<[a-zA-Z]{1,?}>", String$(bereich#, 0))
Mußte mal ausprobieren. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 15.11.2013 ▲ |
|
|
|
|
Jörg Sellmeyer | Richi (15.11.13)
ich möchte so was wie in PHP die String-Funktion strip_tags machen, wo alle HTML Befehle entfernt werden. Da ich nicht alle HTML Befehle angeben möchte usw würde ich einfach alles zwischen < und > aus dem Text entfernen.
Eigentlich könntest du dann mit meiner Methode alles in eine Liste schreiben. Die kannst du dann abarbeiten und deinen Text (ich würde alles in eine Stringvariable einlesen) mut Translate$() bearbeiten.
Richi (15.11.13)
2. Nun hätte ich wahrscheinlich auch Sachen wie href Links im Text stehen die sollte ich natürlich zu vor heraus suchen können
Ich kenn mich da nicht so aus - stehen href-Links auch in spitzen Klammern (<href> </href>)? Je nachdem, ob du die zugehörigen Links behalten willst, kannst du dann Vorher den Code auf die gleiche Weise auf href und /href parsen und die Links per SubStr$() in eine Liste einlesen.
Richi (15.11.13)
Ich habe jetzt meine Routine so verknotet das ich nicht mehr durchblicke Ich fange glaub noch mal morgen neu an
Das kenn ich
Richi (15.11.13)
Für Ideen und Anregungen Danke auch für deine Hilfe
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 15.11.2013 ▲ |
|
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.11.2013 ▲ |
|
|
|
|
H.Brill | Hallo Jörg, genau das meinte ich. RegExp würde ich vorziehen, weil man da schon die Systemvariablen $Match, &MatchPo, %MatchLen immer zur Hand hat. Ist auch eine feine Sache in Verbindung mit @Translate$() und Instr(). Wenn man dann noch auf Rolands verlinkte Seite (Hilfe) geht, wird es noch interessanter.
PS: Hatte auch mal vor einigen Monaten sowas für Tags gebraucht : KompilierenMarkierenSeparieren |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 16.11.2013 ▲ |
|
|
|