1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Ilse

Beiträge von Ilse

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 15:52

    ...leider immer noch nicht!
    Wenn ich im Code das einbaue
    dann erscheint wieder der Fehler

    Subscript used with non-Array variable.:
    $pos = Stringinstr($aZielRead[$i], $search[0])
    $pos = Stringinstr($aZielRead[$i], $search^ ERROR

    bin langsam am Ende mit den Nerven

    Liebe Grüße
    Ilse ;)

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 15:01

    Hallo TheLuBu,

    merci daß du dich wieder meldest!
    Der Error ist nun weg, aber das Ergebnis stimmt leider immer noch nicht!
    Ich bin immer noch auf Fehlersuche...

    Also: Nach dem Suchwort "Ilse" sollte ein Return erfolgen und dann der neue Text eingefügt werden!

    Zur Zeit sieht das Ergebnis so aus:

    [autoit]


    Das ist der neue TextIlse

    [/autoit]

    Es sollte aber so aussehen

    [autoit]


    Ilse
    Das ist der neue Text

    [/autoit]

    Der Text wird an den ANFANG gesetzt, ganz egal wo das Suchwort ist???
    Was mir noch aufgefallen ist:

    [autoit]


    _ArrayDisplay($Search) ; liefert kein Ergebnis!

    [/autoit]

    Liebe Grüße
    Ilse ;)

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 13:15

    Hallo nochmal,

    ich habe jetzt mal den Code für beide Editfelder fertig.

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <file.au3>
    #include <String.au3>
    #Include <GuiEdit.au3>

    [/autoit][autoit][/autoit][autoit]

    $Form1_1 = GUICreate("Funktions-Converter MCC", 969, 653, 282, 104)
    $MenuItem1 = GUICtrlCreateMenu("&Datei")
    $mnopen = GUICtrlCreateMenuItem("&öffnen", $MenuItem1)
    $mnSave = GUICtrlCreateMenuItem("&speichern", $MenuItem1)
    $mcClose = GUICtrlCreateMenuItem("&beenden", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("&Konvertierung")
    $MenuItem2 = GUICtrlCreateMenuItem("&Speichern als", $MenuItem3)
    $Input2 = GUICtrlCreateInput("", 640, 16, 205, 21)
    $Label1 = GUICtrlCreateLabel("Name", 856, 20, 76, 17)
    $Tab1 = GUICtrlCreateTab(16, 36, 933, 569)
    $TabSheet1 = GUICtrlCreateTabItem("Text bearbeiten")
    $Quelle = GUICtrlCreateEdit("", 28, 112, 393, 457)
    GUICtrlSetData(-1, "Quelle")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Ziel = GUICtrlCreateEdit("", 548, 112, 385, 457)
    GUICtrlSetData(-1, "Ziel")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Start = GUICtrlCreateButton("Konvertieren >", 432, 116, 103, 25)
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $FeldName = "ATTR=Name:"

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $mnopen
    Case $mnSave
    Case $mcClose
    Case $MenuItem2
    Case $Start
    $ZielRead = GUICtrlRead($Ziel)
    $aZielRead = StringSplit($ZielRead, @CRLF, 1)
    $QuelleRead = GUICtrlRead($Quelle)
    $aQuellRead = StringSplit($QuelleRead, @CRLF, 1)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 1 To UBound($aQuellRead,1)-1

    [/autoit][autoit][/autoit][autoit]

    #region Feldvariablen
    if StringInStr($aQuellRead[$i],$FeldName) Then ;Feldname convertiert!
    $search = _StringBetween($aQuellRead[$i],"ATTR=Name:","")

    [/autoit][autoit][/autoit][autoit]

    If IsArray($Search) Then

    [/autoit][autoit][/autoit][autoit]

    _GUICtrlEdit_AppendText($Ziel, "$" & $search[0]&" = Source Text "&"," &""""& $search[0]&""")"& @CRLF)
    Else
    ;MsgBox(0,"","Es wurde nichts gefunden")
    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndIf
    #endregion Feldvariablen
    next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    For $i = 1 To UBound($aZielRead,1)-1
    $search = _StringBetween($aZielRead[$i],"ilse","") ;String wird gesucht
    $pos = Stringinstr($aZielRead[$i], $search[0]) ; sucht die position des strings im Text
    $pos += Stringlen($search[0]) ; addiert die Stringlänge zur gefundenen postion hinzu
    ;_GUICtrlEdit_InsertText($Ziel, "Text" @CRLF, $pos) ; fügt den Text hinter dem gefundenen ein
    ;_ArrayDisplay($search)

    [/autoit][autoit][/autoit][autoit]

    If IsArray($Search) Then
    _GUICtrlEdit_InsertText($Ziel, "Text", $pos) ; fügt den Text hinter dem gefundenen ein

    [/autoit][autoit][/autoit][autoit]

    Else
    endif
    next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Ich bekomme diese Fehlermeldung nicht weg!

    Zitat

    Subscript used with non-Array variable.

    obwohl ich IsArray verwende!
    Woran kann das liegen?

    Zum nachvollziehen des Codes:

    1. Wenn ich einfach auf Konvertieren klicke stürzt es ab!
    2. Trage ich rechts Ilse ein und klicke auf konvertiere dann: (Text wird falsch eingefügt) kein Absturz
    3. Ist Zielfeld leer (Absturz)...


    Grüße
    Ilse ;)

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 12:10

    Hallo Raupi,

    du hast vollkommen Recht.
    War glaube ich mein Fehler...

    Ich habe die ganze Zeit nochmals alles probiert und das ganze jetzt
    geändert. (Loop im Zielfeld) Ich glaube so kann man das jetzt besser nachvollziehen.

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <file.au3>
    #include <String.au3>
    #Include <GuiEdit.au3>

    [/autoit][autoit][/autoit][autoit]

    $Form1_1 = GUICreate("Funktions-Converter MCC", 969, 653, 282, 104)
    $MenuItem1 = GUICtrlCreateMenu("&Datei")
    $mnopen = GUICtrlCreateMenuItem("&öffnen", $MenuItem1)
    $mnSave = GUICtrlCreateMenuItem("&speichern", $MenuItem1)
    $mcClose = GUICtrlCreateMenuItem("&beenden", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("&Konvertierung")
    $MenuItem2 = GUICtrlCreateMenuItem("&Speichern als", $MenuItem3)
    $Input2 = GUICtrlCreateInput("", 640, 16, 205, 21)
    $Label1 = GUICtrlCreateLabel("Name", 856, 20, 76, 17)
    $Tab1 = GUICtrlCreateTab(16, 36, 933, 569)
    $TabSheet1 = GUICtrlCreateTabItem("Text bearbeiten")
    $Quelle = GUICtrlCreateEdit("", 28, 112, 393, 457)
    GUICtrlSetData(-1, "Quelle")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Ziel = GUICtrlCreateEdit("", 548, 112, 385, 457)
    GUICtrlSetData(-1, "Ziel")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Start = GUICtrlCreateButton("Konvertieren >", 432, 116, 103, 25)
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $mnopen
    Case $mnSave
    Case $mcClose
    Case $MenuItem2
    Case $Start
    $ZielRead = GUICtrlRead($Ziel)
    $aZielRead = StringSplit($ZielRead, @CRLF, 1)

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To UBound($aZielRead,1)-1
    $search = _StringBetween($aZielRead[$i],"ilse","") ;String wird gesucht
    $pos = Stringinstr($aZielRead[$i], $search[0]) ; sucht die position des strings im Text
    $pos += Stringlen($search[0]) ; addiert die Stringlänge zur gefundenen postion hinzu
    ;_GUICtrlEdit_InsertText($Ziel, "Text" @CRLF, $pos) ; fügt den Text hinter dem gefundenen ein
    ;_ArrayDisplay($search)

    [/autoit][autoit][/autoit][autoit]

    If IsArray($Search) Then
    _GUICtrlEdit_InsertText($Ziel, "Text" & @CRLF, $pos) ; fügt den Text hinter dem gefundenen ein

    [/autoit][autoit][/autoit][autoit]

    Else
    endif
    next

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Folgendes passiert:

    Wenn das Ziel-EDIT den Suchtext nicht enthält stürzt es ab!
    Schreibe ich in das Suchfeld meinen Namen
    (Es wird ja beim Button nach Ilse gesucht)
    dann wird Text aber davor gesetzt und nicht danach!

    Die Errormeldung wenn weitere Suchfunktionen dazukommen

    Zitat

    Subscript used with non-Array variable.:
    $pos = Stringinstr($aZielRead[$j], $search[0])
    $pos = Stringinstr($aZielRead[$j], $search^ ERROR


    Grüße
    Ilse ;)

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 11:17

    Hallo TheLuBu,

    hm... jetzt bekomme ich wieder diese ErrorMeldung

    Zitat

    Subscript used with non-Array variable.:

    habe versucht das so zu umgehen

    [autoit]


    If IsArray($Search) or ($Pos) Then
    _GUICtrlEdit_InsertText($Ziel, "Text", $pos) ; fügt den Text hinter dem gefundenen ein
    Else
    ;MsgBox(0,"","Es wurde nichts gefunden")
    EndIf

    [/autoit]


    Die Meldung wird in dieser Zeile angezeigt!

    [autoit]


    $pos = Stringinstr($aQuellRead[$i], $search[0]) ; sucht die position des strings im Text

    [/autoit]


    das geht leider nicht!

    Übrigens, hinter der Fundstelle sollte ein @CRLF rein.
    Ich meine, daß der neue Text am Zeilenanfang steht!

    :( Ilse

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 10:23

    Eigentlich wäre der beste Weg:

    1. Ich suche einen Text (das klappt)

    [autoit]


    $search = _StringBetween($aQuellRead[$i],"Name:"," ")

    [/autoit]


    und genau nach dieser SuchPosition sollte dann was eingefügt werden!

    [autoit]


    If IsArray($Search) Then
    _GUICtrlEdit_InsertText($Ziel, "$" & $search[0]&" = "&"" &""""& $search[0]&""""& @CRLF,0)
    Else

    [/autoit]


    ich kann was einfügen, hier ist das natürlich nicht korrekt (Zeilenanfang @CRLF,0)
    ...also irgendwie in der Syntax nach dem Search, dann InsertText!

    huh...

    @ Bugfix,
    da hatten wir den gleichen Gedanken. Habe gepostet und dann erst deine Nachricht gelesen.


    ;) Ilse

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 09:48

    Schönen guten Morgen TheLuBu,

    merci, das klappt!

    [autoit]


    Case $Anfang
    _GUICtrlEdit_InsertText($Ziel, "Hier steht mein Text...."& @CRLF,0 )

    [/autoit]

    der Text wird am Anfang eingesetzt.
    Weißt du auch wie ich einen Text an eine ganz bestimmte Cursorposition im Editfeld bekomme?
    Ich klicke zuerst in das Editfeld an eine Position
    und dann auf den Button Einfügen!

    Grüße
    Ilse ;)

  • Editfeld Subscript used with non-Array variable

    • Ilse
    • 18. April 2011 um 09:13

    Guten Morgen zusammen,

    ich benutze den Befehl _GUICtrlEdit_AppendText (#Include <GuiEdit.au3>) um ein Editfeld zu befüllen.
    Der Text wird immer am Ende angehängt! Soweit so gut!
    Meine Frage:
    Mit welchem Befehl kann ich bestimmen wo genau eingefügt wird.
    (Zeilenanfang, Zeilendene, aktuelle Cursurposition...)

    So sieht z.B. die Zeile aus
    die Code am Ende einfügt!

    [autoit]


    _GUICtrlEdit_AppendText($Ziel, "Hier steht mein Text...."& @CRLF)

    [/autoit]


    Grüße
    Ilse ;)

  • Editfeld zeilenweise füllen

    • Ilse
    • 16. April 2011 um 15:47

    He Molaynox,

    Super, das klappt. :rock:

    Ich kämpfe schon seit Stunden.

    Liebe Grüße
    Ilse ;)

  • Editfeld zeilenweise füllen

    • Ilse
    • 16. April 2011 um 13:56

    nee, klappt nicht!
    hatte ich auch schon probiert!

    Das Edit wird quasi Zeilenweise m. Umbruch je durchlauf gefüllt.

    Im Moment wird ins Editfeld immer nur eine Zeile eingetragen!
    Also 1, 2, oder 3 Ich brauche aber alle

    [autoit]


    GUICtrlSetData($Ziel, $aQuellRead[$i] & "Zeile " & $i & @CRLF)

    [/autoit]

    das geht auch nicht

    Spoiler anzeigen


    FileWriteLine($Ziel,$aQuellRead[$i])


    Grüße
    Ilse ;)

  • Editfeld zeilenweise füllen

    • Ilse
    • 16. April 2011 um 13:28

    Hallo,

    kann mir jemand sagen wie ich in dieser Syntax
    einen Zeilenumbruch machen kann:
    Meine Versuche mit @CRLF schlugen alle fehl!

    [autoit]


    For $i = 1 To UBound($aQuellRead,1)-1
    MsgBox(4096,"",$aQuellRead[$i])
    $Ziel1 = GUICtrlSetData($Ziel, $aQuellRead[$i]) ; hier sollte ein Umbruch gemacht werden. @CRLF....
    Next

    [/autoit]


    Grüße
    Ilse ;)

  • Text ein/auslesen in Gui

    • Ilse
    • 16. April 2011 um 11:19

    Hallo Raupi,

    muß mich wieder melden.
    Das was ich möchte klappt leider noch nicht!
    Ich habe die Gui etwas modifiziert.

    Also:

    • Auf der linken Seite ist der Quelltext(geladen, Zwischenablage....egal)
    • Button Konvertieren sollte rechts einen neuen konvertierten Text anzeigen

    Wenn der Text links in einer Zeile eine Variable enthält, dann
    soll rechts in das Edit Feld 1 neue Zeile eingefügt werden.

    Spoiler anzeigen


    Enthält links der der Version, dann schreibe rechts eine neue Zeile
    mit dem Text der hinter dem Button Konvertieren vorgesehen ist!
    z.B. (Vers. 3322-Ilse)


    Wenn der Text links in der 2. Zeile eine Var. enthält, dann
    soll rechts in das Edit Feld 1 neue Zeile angefügt werden!

    Diese Suchwörter habe ich im Code verankert!

    Spoiler anzeigen


    $Version = "Version" ; das gesuchte Wort links im Quelltext
    $GoTo = "URL" ; ein weiteres gesuchte Wort links im Quelltext
    $Form = "FORM=NAME" ;ID der Form links im Quelltext

    Das ist mein CODE

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <file.au3>
    #include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $Form1_1 = GUICreate("Converter", 969, 653, 282, 104)
    $MenuItem1 = GUICtrlCreateMenu("&Datei")
    $mnopen = GUICtrlCreateMenuItem("&öffnen", $MenuItem1)
    $mnSave = GUICtrlCreateMenuItem("&speichern", $MenuItem1)
    $mcClose = GUICtrlCreateMenuItem("&beenden", $MenuItem1)
    $MenuItem3 = GUICtrlCreateMenu("Konvertierung")
    $MenuItem2 = GUICtrlCreateMenuItem("&Speichern als", $MenuItem3)
    $Input2 = GUICtrlCreateInput("", 512, 12, 205, 21)
    $Label1 = GUICtrlCreateLabel("Dateiname", 728, 12, 55, 17)
    $Tab1 = GUICtrlCreateTab(16, 36, 933, 569)
    $TabSheet1 = GUICtrlCreateTabItem("Text bearbeiten")
    $Quelle = GUICtrlCreateEdit("", 28, 112, 393, 457)
    GUICtrlSetData(-1, "Quelle")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Ziel = GUICtrlCreateEdit("", 548, 112, 385, 457)
    GUICtrlSetData(-1, "Ziel")
    GUICtrlSetBkColor(-1, 0xE3E3E3)
    $Start = GUICtrlCreateButton("Konvertieren >", 432, 116, 103, 25)
    GUICtrlCreateTabItem("")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    #region Feldsuche
    $Version = "Version" ; das gesuchte Wort im Text
    $GoTo = "URL" ; ein weiteres gesuchte Wort im Text
    $Form = "FORM=NAME" ;ID der Form
    #endregion Feldsuche

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Global $aCodetxt
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $mnopen
    $message = "Bitte Code auswählen."
    $openCode = FileOpenDialog($message, @ScriptDir & "\", "Code (*.au3;*.txt)", 1 + 4)
    If @error Then
    MsgBox(4096, "", "Keine Datei gewählt")
    Else
    $aCodetxt = FileRead($openCode)
    ;~ $Daten = _filereadtoarray($openCode,$aCodetxt)
    $Quelle1 = GUICtrlSetData($Quelle, $aCodetxt)
    ;~ _ArrayDisplay($aCodetxt)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Case $mnSave
    $message = "Speichern unter ..."
    $saveCode = FileSaveDialog($message, @ScriptDir & "\", "Code (*.au3;*.txt)", 1 + 4)
    If @error Then
    MsgBox(4096, "", "Keine Datei gewählt")
    Else
    FileWrite($saveCode, GUICtrlRead($Quelle))
    ;~ MsgBox(4096,"","Auswahl " & $openCode)
    EndIf
    Case $mcClose
    Case $MenuItem2
    Case $Start
    ;$array= Stringsplit(GUICtrlRead($Quelle),@crlf,3)
    ; _ArrayDisplay($array)
    $Quelle2 = GUICtrlSetData($Ziel, $aCodetxt)
    if StringInStr(GUICtrlRead($Ziel),$Version) Then ;Formname wird convertiert!
    Msgbox(0,$Ziel,"gefunden")
    ;FileWriteLine($Quelle2, "$oForm = _IEFormGetObjByName ($oIE")
    endif

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Der Button Konvertieren (darum geht es) stimmt noch nicht!
    Also, links steht jede Menge Text
    klickt man auf Konvertieren dann kommen rechts z.B. 3 neue Zeilen raus!

    Beispieltext links:

    Spoiler anzeigen


    VERSION 1110311ttdd
    URL GOTO=http://www.test.de/
    TAG POS=1 TYPE=SELECT FORM=Name:suche ATTR=ID: 544

    Ergebnis rechts: Wenn Version gefunden wurde...Replace Version mit....

    Spoiler anzeigen


    (Version Ilse 6577) ; wenn links Version enthalten ist!
    Adresse = http://www.test.de/ ; wenn links GoTo enthalten ist!


    Das mit StringInStr, StringReplace...bekomme ich irgendwie hin,
    Das Hauptproblem des Buttons Konvertieren!
    Wie kann ich den Zeilendurchlauf links starten und rechts (falls $var vorhanden), Zeilenweise schreiben
    da komme nicht nicht weiter!

    Würde mich über ein Beispiel sehr freuen

    Liebe Grüße
    Ilse ;)

  • Text ein/auslesen in Gui

    • Ilse
    • 15. April 2011 um 21:08

    Super Raupi,

    klappt prima.
    (zurück zu deiner Erkrankung...) Spaß muß sein.
    Dieser Inhalt wird auf Textinhalte untersucht (ersetze Müller durch Meier...)
    wenn man auch die Schaltfläche klickt, dann
    soll die neue Datei (die man ja noch nicht sieht) mit dem Namen gespeichert werden,
    der unten drin steht...Ha soweit bin ich aber noch nicht!

    Dank dir
    und werd bald wieder gesund! :D

    Ilse ;)

  • Text ein/auslesen in Gui

    • Ilse
    • 15. April 2011 um 19:12

    He Raupi,

    ich muß ja zuerst mal die Datei in den EditorInhalt hineinbekommen!
    Ich kann Sie ja als Array anzeigen,
    nur wie krieg ich die Daten in mein gui Feld?

    ;) Ilse

  • Text ein/auslesen in Gui

    • Ilse
    • 15. April 2011 um 18:26

    Hallo Raupi,

    erinnerst du dich noch an meinen letzten Thread?

    Spoiler anzeigen


    #include <Array.au3>
    #include <file.au3>
    #Include <String.au3>

    $message = "Textauswahl"

    $Auswahl = FileOpenDialog($message, @ScriptDir & "", "Texte (*.txt;*.csv)", 1 + 4 )
    Dim $aZeile[10]
    Global $sPathFile = $Auswahl
    $NeueDatei = InputBox("Neu","DateiName","Neuer-Text.txt")
    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    ;_ArrayDisplay($aZeile)
    #region Feldsuche
    $Version = "Version" ; das gesuchte Wort im Text
    $Form = "TYPE=SELECT FORM=NAME" ;ID der Form
    ;hier trage ich alle Suchfelder ein
    #endregion Feldsuche

    For $i = 1 To UBound($aZeile,1)-1
    _ArrayDisplay($aZeile)
    if StringInStr($aZeile[$i],$Version) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$Version,"_Markt()")
    FileWriteLine($NeueDatei, "Test()")
    sleep(1000)
    EndIf

    if StringInStr($aZeile[$i],$Form) Then

    $search = _StringBetween($aZeile[$i],":","ATTR=ID")
    If IsArray($Search) Then
    MsgBox(0,"",$search[0])
    Else
    MsgBox(0,"","Es wurde nichts gefunden")
    EndIf
    EndIf

    Next

    Dafür habe ich mir jetzt eine Gui gemacht.

    1. Damit ich auch Texte Speichern kann
    2. Damit ich in das Feld per Zwischenablage Code einfügen kann

    Ich will aus dem EDIT ein Array bilden.
    Hoffe du kannst das jetzt nachvollziehen.

    Grüße
    Ilse ;)

  • Text ein/auslesen in Gui

    • Ilse
    • 15. April 2011 um 17:48

    Hallo,

    ich habe mir für meine Texte eine Gui gebaselt.
    Habe aber leider wieder mal etwas Stress.
    Das sollte die Gui können:

    • Ich habe ein Editfeld
    • In dieses Editfeld soll eine Textdatei eingelesen werden
    • Alles was in dem Editfeld ist, sollte man auch speichern können
    • Wenn ich auf den Startbutton klicke sollte der Inhalt des Codefeldes als Array gelesen werden.

    Und hier meine Gui-Versuche

    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <file.au3>
    #Include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $Form1_1 = GUICreate("Textspeicher", 615, 440, 463, 253)
    $MenuItem1 = GUICtrlCreateMenu("&Datei")
    $mnopen = GUICtrlCreateMenuItem("&öffnen", $MenuItem1)
    $mnSave = GUICtrlCreateMenuItem("&speichern", $MenuItem1)
    $mcClose = GUICtrlCreateMenuItem("&beenden", $MenuItem1)
    $btnFunktion = GUICtrlCreateButton("Start", 416, 356, 155, 25)
    $Input2 = GUICtrlCreateInput("Datei", 28, 312, 437, 21)
    $Code = GUICtrlCreateEdit("", 24, 44, 545, 253)
    GUICtrlSetData(-1, "Code")
    $Label1 = GUICtrlCreateLabel("Dateiname", 480, 316, 55, 17)
    $Label2 = GUICtrlCreateLabel("Code", 28, 20, 69, 17)
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Global $aCodetxt

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit][autoit][/autoit][autoit]

    Case $mnopen
    $message = "Bitte Code auswählen."

    [/autoit][autoit][/autoit][autoit]

    $openCode = FileOpenDialog($message, @ScriptDir & "\", "Code (*.au3;*.txt)", 1 + 4 )
    If @error Then
    MsgBox(4096,"","Keine Datei gewählt")
    Else
    ;Msgbox(0,"",$openCode)

    [/autoit][autoit][/autoit][autoit]

    $Daten = _filereadtoarray($openCode,$aCodetxt)
    $code1 = GUICtrlSetData($code,$aCodetxt)
    _ArrayDisplay($aCodetxt)

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Case $mnSave
    $message = "Bitte Code auswählen."

    [/autoit][autoit][/autoit][autoit]

    $openCode = FileSaveDialog($message, @ScriptDir & "\", "Code (*.au3;*.txt)", 1 + 4 )
    If @error Then
    MsgBox(4096,"","Keine Datei gewählt")
    Else
    MsgBox(4096,"","Auswahl " & $openCode)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Case $mcClose
    Exit
    Case $btnFunktion
    $TextDatei = _filereadtoarray($Code,$aCodetxt)

    [/autoit][autoit][/autoit][autoit]

    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]

    Liebe Grüße
    Ilse ;)

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 21:40

    Hallo TheLuBu,

    :rock: du hast mir heute eine ruhige Nacht beschert!
    1000 Dank!

    Was für ein Tag...

    Liebe Grüße
    ;) Ilse

    und auch meinen Dank an Oscar!

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 20:25

    Hallo Oscar,

    hm ich habe in dem Text
    mehrere Felder die ich untersuche.
    Je nach Inhalt liefert StringBetween das korrekte Ergebnis!

    [autoit]


    #region Feldsuche
    $Version = "Version" ; das gesuchte Wort im Text
    $GoTo = "URL GOTO=" ; ein weiteres gesuchte Wort im Text
    $FeldID = "ATTR=ID:"
    $FeldName = "ATTR=NAME:"
    #endregion Feldsuche

    [/autoit]

    d.h. Wenn StringBetween nichts zum anzeigen hat
    bzw. wenn nichts gefunden wird kommt diese ErrorMeldung?

    Wie kann ich IsArray oder @Error im Code
    so einbauen, damit das endlich läuft.

    Die Textdateien sind unterschiedlich BeispielText

    Spoiler anzeigen


    Hier steht die VERSION 54664564
    URL GOTO=http://www.test.de
    Hier steht Text TAG POS=1 TYPE=SELECT FORM=NAME:TestID Html:Text
    Hier steht TextTAG POS=1 TYPE=SELECT FORM=NAME:TestID ATTR=NAME:Hier Steht Text

    Die Texte die ich einlesen sind unterschiedlich.
    D.h. Mein Script wollte ich so aufbauen,
    daß, wenn die Textdatei die Inhalte die ich suche hat, diese Inhalte in die neue Datei geschrieben werden.
    Deßhalb wollte ich Zeile für Zeile prüfen, Strings auswerten und dann schreiben!

    Hier nochmal das kpl. Script

    [autoit]


    #include <Array.au3>
    #include <file.au3>
    #Include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $message = "Textauswahl"

    [/autoit][autoit][/autoit][autoit]

    $Auswahl = FileOpenDialog($message, @ScriptDir & "", "Texte (*.txt;*.csv)", 1 + 4 )
    Dim $aZeile[10]
    Global $sPathFile = $Auswahl
    $NeueDatei = InputBox("Neu","DateiName","Neuer-Text.txt")
    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    ;_ArrayDisplay($aZeile)
    #region Feldsuche
    $Version = "Version" ; das gesuchte Wort im Text
    $Form = "TYPE=SELECT FORM=NAME" ;ID der Form
    ;hier trage ich alle Suchfelder ein
    #endregion Feldsuche

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To UBound($aZeile,1)-1
    _ArrayDisplay($aZeile)
    if StringInStr($aZeile[$i],$Version) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$Version,"_Markt()")
    FileWriteLine($NeueDatei, "Test()")
    sleep(1000)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    if StringInStr($aZeile[$i],$Form) Then

    [/autoit][autoit][/autoit][autoit]

    $search = _StringBetween($aZeile[$i],":","ATTR=ID")

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$search[0])

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit]

    Bin heute fix und fertig mit diesen Arrays...

    Liebe Grüße
    Ilse ;)

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 20:06

    Hallo Oscar,

    ich habe gerade den kpl. Code gepostet.
    Das mit isArray hatte ich auch schon probiert!

    [autoit]


    Func _checkPM($temp)
    $substring_arr = _StringBetween($temp, "var i=", ";")
    If IsArray($substring_arr) Then
    Return $substring_arr[0]
    Else
    Return "Nichts gefunden!!!"
    EndIf
    EndFunc ;==>_checkPM

    [/autoit]

    Ich bekam innerhalb des Scriptes die Meldung "Nichts gefunden"
    Vielleicht hab ich da was falsch gemacht?

    huh, bin schon seit Stunden am lesen und probieren
    ich krieg das einfach nicht hin!

    Liebe Grüße
    Ilse ;)

  • Array Var Problem

    • Ilse
    • 14. April 2011 um 20:02

    Ich habe den kpl. Quellcode
    nochmal überschaulicher gemacht.

    So kann man es besser nachvollziehen.
    Die Textdatei die gewählt wird

    Spoiler anzeigen


    $Version = "Version" ; das gesuchte Wort im Text
    $Form = "TYPE=SELECT FORM=NAME" ;ID der Form

    Das Script mit dem Fehler

    [autoit]


    #include <Array.au3>
    #include <file.au3>
    #Include <String.au3>

    [/autoit][autoit][/autoit][autoit]

    $message = "Textauswahl"

    [/autoit][autoit][/autoit][autoit]

    $Auswahl = FileOpenDialog($message, @ScriptDir & "", "Texte (*.txt;*.csv)", 1 + 4 )
    Dim $aZeile[10]
    Global $sPathFile = $Auswahl
    $NeueDatei = InputBox("Neu","DateiName","Neuer-Text.txt")
    _FileReadToArray($sPathFile, $aZeile) ; txt einlesen in Array
    ;_ArrayDisplay($aZeile)
    #region Feldsuche
    $Version = "Version" ; das gesuchte Wort im Text
    $Form = "TYPE=SELECT FORM=NAME" ;ID der Form

    [/autoit][autoit][/autoit][autoit]

    #endregion Feldsuche

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To UBound($aZeile,1)-1
    _ArrayDisplay($aZeile)
    if StringInStr($aZeile[$i],$Version) Then
    $aZeile[$i] = StringReplace($aZeile[$i],$Version,"_Markt()")
    FileWriteLine($NeueDatei, "Test()")
    sleep(1000)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    if StringInStr($aZeile[$i],$Form) Then

    [/autoit][autoit][/autoit][autoit]

    $search = _StringBetween($aZeile[$i],":","ATTR=ID")

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,"",$search[0])

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit]

    Und das ist die Meldung

    Zitat

    Subscript used with non-Array variable.:
    MsgBox(0,"",$search[0])
    MsgBox(0,"",$search^ ERROR

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™