Zahlen trennen

  • Hallo zusammen,:S


    Ist weiß jemand ob es möglich ist Zahlen zu trennen.


    Also bsp.


    Vorgabe : 123456789101112131415161718192021

    Endergebnis als Array: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 also jede Zahl in ein als eigene spalte.


    & falls das geht würde das dann auch mit mehr Ziffern gehen ? bsp : 1001100210031004 = 1001 1002, 1003, 1004


    Ich weiß das man mit StringSplit die Zahlen trennen kann allerdings geht das in der einfachen Form mit mit einern ich weiß nicht wie das mit Zehnern oder hunderter gar tausender gehen soll.


    Mit freundlichen Grüßen


    Mojoe

  • Woher soll das Programm wissen das die "0" bei der 10 nicht eigenständig ist? (nur mal als Beispiel)

    Oder sind es immer fortlaufende Zahlen oder eine andere Logik (immer aufsteigend etc.)?


    Ggf. Hilft auch: Woher kommen diese "Informationen"?


    Ansonsten sehe ich keine Chance.

  • Ja da hast du recht, nachdem ich das abgeschickt hatte, dachte ich mir das so eine Frage kommt.



    ich bin grad auf dem Sprung ich werde die Frage mit Beispiel noch mal präzisieren, mit beispiel seite wo & wie das ganze geschehen soll.


    ich hoffe das ich es heute Abend noch schaffe.

  • So ich habe es leider nicht mehr geschafft, aber nun eine abgeänderte Version Basierend auf der Demo Page.


    Da ich mit einer anderen Datei Ordner Struktur & manche Variablen, erstellen lasse, stehen für dieses Beispiel alle Variabel im Skript voll ausgeschrieben.



    Es wird nur die Demo Seite gezeigt. Damit Ihr sehen könnt was ich vor habe.



    Um das laufen zu lassen müssen folgende dinge erfüllt werden :

    - Ordnerstruktur @Scriptdir \Datensatz

    @Scriptdir \BS.ini

    @Scriptdir \Datensatz\DB\DB.lvdb

    @Scriptdir \Datensatz\TXT\CarsucheNach.txt



    Inhalt :

    BS.ini

    Code
    [tel]
    =

    DB. lvdb

    Code
    <data>MKK-PT 62 (4916090807759)</data>=<SIM>4916090807759</SIM><TYP> (4916090807759)</TYP><BS>tel</BS>
    <data>Service Vito (4916092178795)</data>=<SIM>4916092178795</SIM><TYP>to (4916092178795)</TYP><BS>tel</BS>
    <data>Test AS</data>=<SIM>4915115152326</SIM><TYP></TYP><BS>tel</BS>


    CarsucheNach.txt

    Code
    Suchstring1|suchsting2|[Time stamp] (60000): 11.03.2020 15:01:19|


    au3 quelle :



    Das Login ist schon eingestellt, einfach auf LOGIN klicken.

    Erklärung :

    1 . LOGIN drücken.

    2. das Datum ist extra auf 2016 gestellt damit wir Testdaten zur Verfügung haben.

    3. Menü-Taste Datenbank laden : die selbst erstellte *lvdb datei auswählen.

    4. Dann Test AS auswählen (dort sind die meisten TEST daten vorhanden.

    Button BT4 klicken.


    Dann kann man sehen was ich vor habe.

    Funktionen um die es geht :

    _btn4_()

    _1_2_3_($sPosSplitt)

    _ArraySuche_



    Ich suche auf der aufgerufenen Seite mit der Datei : CARsucheNach.txt, nach Strings, die in der Datei mit | getrennt sind. auf dem IEhtml/Bodytext (leider funktioniert das so im oberen Beispiel nicht.(das Suchen)


    Man kann beobachten das die Zahlen oben & unten gelesen werden & dann geklickt. Das Problem bei 20 Seiten kommt '...' wenn '...' geklickt ist kommt man zur Seite 21 aber vor der 21 steht dann wieder '...' & das wird dann wieder angeklickt anstatt 22.


    Einfach mal ausführen dann kann man sehen was ich meine.

    Das ist ja nur eine Beispielseite, bei uns im Netz, suchen wir manchmal nach bestimmten Wörtern, dort kann es auch vorkommen das 1 Fahrzeug mehrere tausend Seiten am Tag hat.

    Deshalb wollte ich fragen wie man die Zahlen Trennt, weil ich erst den Quelltext geparst in einzelne Array hatte und dann 1234567891011121314151617181920... bei raus kam.



    Ich hoffe ich muss kein neuen Thread aufmachen dafür .


    Mit freundlichen Grüßen

    Mojoe

  • Deshalb wollte ich fragen wie man die Zahlen trennt, weil ich erst den Quelltext geparst in einzelne Array hatte und dann 1234567891011121314151617181920... bei raus kam.

    Um Deinen ganzen Code durchzulesen fehlt mir leider momentan die Zeit.


    Um aber die fortlaufenden Seitennummern zu erhalten, dürfte dieses Beispiel weiterhelfen :):


    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • @Musashi

    |Danke hab´s mir mal angesehen, das ist leider nicht das was ich brauche oder falls doch weiß ich nicht ich das damit verknüpfen soll soll ich hab noch nicht ganz durchgeblickt ... :Face:mein Problem ist eher das nach 20 ein |...| kommt.


    es ist glaub ich nicht ganz das was ich brauche, ich habe meine Start frage völlig falsch gestellt, aber auf Grund dessen da ich noch eine andere funktionsweiße verfolgt habe.


    Nun ist es so ich ich haberausgefunden wie ich den Index des IE durchgehen kann, bzw. vorher auslesen & dann clickbytext mit einer schiefe durchlaufen lassen kann


    Ich hatte mehrere Möglichkeiten.

    Ich hab noch eine Idee aber ich geh nun schlafen.

    melde mich morgen wieder


    Trotzdem danke für den Hilfe versuch.


    Das Problem ist nur noch die Zeichen |...|...| .


    Sry ich bin zu müde ^^ ich schreibe morgen wieder.

  • .. mein Problem ist eher das nach 20 ein |...| kommt. Es ist, glaube ich, nicht ganz das, was ich brauche, ich habe meine Startfrage völlig falsch gestellt, aber auf Grund dessen da ich noch eine andere Funktionsweise verfolgt habe.

    Ja, dann war Deine Startfrage falsch gestellt :whistling:, siehe :

    Vorgabe : 123456789101112131415161718192021

    Endergebnis als Array: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 -10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Du hast vollkommend recht. :)


    & quasi hast du meine Frage beantwortet, ich habe jetzt eine Lösung gefunden.



    Ich habe es so gelöst :



    Die einzelnen Seitenzahlen auslesen & mit IF die Bedingung gesetzt wenn = '...' dann von



    code davor :

    Ich habe erstmal _ArraySuche_ rausgenommen.

    Muss da muss ich noch schauen wie ich das hinbekomme das es auch richtig funktioniert.


    Dann die Funktion die Funktion zum auslesen geändert & zusammengefasst.


    Ergebnis :

    hatte das Fenster schon mega lange offen.. deswegen die durchgestrichenen Lienen

    Ich dachte ich hätte es gelöst und wollte grad das Ergebnis mitteilen dann hatte ich nochmal getestet & gemerkt das ich nur bis Seite 39 komme, egal wie ich ändere ich denke es liegt an UBound($aIEbodyIndexSuche)

    weil wenn er bei 1 oder 0 ankommt ist ja dann ist ja Schluss.


    Dennoch danke für eure Hilfsbereitschaft.


    ich werde morgen mal mit For & DO schleifen rumspielen keine Ahnung ob man die ineinander laufen lassen kann.


    Ich setze das Thema mal auf beendet, falls ich nicht weiter komme mache ich nochmal ein Thread auf. :)

  • Du kannst jede Schleife in einer anderen laufen lassen...man sollte nur aufpassen das es nicht zu viel wird, da du sonst enorme Verzögerungen erzeugst.

    Ich muss gestehen, ich habe immer noch nicht so wirklich verstanden, woher deine Zahlenreihen kommen und warum sie in diesem Bescheidenen Format auftreten...

  • Ich muss gestehen, ich habe immer noch nicht so wirklich verstanden, woher deine Zahlenreihen kommen und warum sie in diesem bescheidenen Format auftreten...

    Hi Moombas

    Dass auf einer Website Pagelisten angeboten werden, kennen wir ja aus z.B. dem DE- oder EN-Forum :



    Auf der Website, die MojoeB gerade verarbeitet, wird 1 2 3 4 5 6 7 8 9 10 11 im Quellcode offenbar mit 1234567891011 dargestellt. Ab einer gewissen Menge von Pages kommt dann |...| hinzu. Sein Problem ist/war? , mit diesem Element umzugehen.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Dann ist es doch immer eine fortlaufende Folge, warum nicht per Schleife (while) einfach alle zahlen 1+x durchgehen, prüfen ob diese vorkommt und wenn nicht abbrechen, sonst weiter.

    Beispiel:

    • String der Zahlen einlesen. ($Seitenzahlen)
    • ggf. '...' im String löschen (ersetzen mit '', sollten dadurch jedoch Lücken entstehen, müssten diese ggf. irgendwie gefüllt werden)
    • while $Seitenzahlen länge = 0
    • $X = 1 (Start default)
    • prüfen ob $X in $Seitenzahlen (nur ganz links und länge von X einbeziehen) Also wenn $X = 1 ist nur das erste Zeichen in $Seitenzahlen prüfen.
    • Wenn es nicht passt, ohne aktion weiter, sonst mit aktion weiter machen
    • Am Ende $x += 1 und entsprechende Anzahl Zeichen aus $Seitenzahlen ganz links löschen.

    Dadurch müsste man es durch laufen können. Theorie!

    Wenn '...' jedoch Lücken erzeugt, wird es schwerer, da man das ggf. zu Laufzeit (oder falls möglich vorher) auffüllen müsste.


    Aber der Tipp von Musashi müsste dann doch 1:1 passen. Post #5

    In Excel berechnet man das z.B. so, was dem Beispiel von Musashi entspricht:

    Mit der höchsten Seitenzahl kennst du alle Zahlen des Strings, da es ja keine Lücken gibt/geben darf.

  • @  Moombas


    ja du hast recht, es liegt an diesem Element |...|.


    Ich habe das Problem leider immer noch nicht gelöst. Leider habe ich grad nicht den Quellcode hier.


    ich kann zwar die links auf der Webseite herausfinden und dann den Index durch gehen. aber anscheint verändert sich der Index.


    Ich kann mir das Array auch irgendwie nicht anzeigen lassen. ich habe versucht mit dem autoit Tool IE_Builder2.0.1 gegenzuprüfen.


    Wenn ich mich jetzt nicht Irre war der letzte Index immer auf 63 & das war das letzte |...| auf der Seite & wird im Link auf bsp mit der 21 .. 41 angezeigt.


    Erklärung :

    Die reihenfolge ist so : 1 | 2 |3 bis 20 | ... |

    Sobald Index |...| gedrückt würd, geht die neue Seite auf |...|21|22|23 bis 40|...|


    Das klappt auch aber, das Problem ist nicht direkt das durchgehen mit einer schleife es ist das nach 20 ... gedrückt wird aber der nächste index wieder ... ist, weil 21 gedrückt ist & er somit wieder auf die ... drückt & wieder auf auf die Seite 1 - 20 zurückspringt.


    Idee 1 :

    _IEClickbytext For schleif 1-500

    Wenn @error dann _IEClickbytext($ie, '...')


    Idee 2

    Wenn @error dann _IEclickbyindex ($ie, 63, 1)


    Verschiedene Szenarien wurden beim rumtesten beobachtet:

    1. entweder findet er nicht den IEindex 63

    2. oder er klickt auf den falschen Link manchmal aufs Impressum, manchmal wieder zurück zu Seite 1 - 20



    & ich habe versucht mit _IENavigate zum Seiten link zu navigieren geht leider auch nicht da der link so aussieht : javascript: .... ..... ... ('....$page21') | ich weiß grad nicht genau wie der link heißt er ist auf jeden fall so aufgebaut.



    quellcode nur als beispiel für das sammeln der links.