Nummerrierung eines Array Eintrages

  • Hi,

    Ich habe wieder mal ein Phänomen welches ich nicht verstehe:

    Ich habe ein GUI indem ich eine Telfonliste darstelle:
    Wenn man einen Namen aus der Liste schreibt, springt die Markirung zu dem EIntrag, was sehr gut und gewünscht ist, so kann mann zB. schnell einen Eintrag auffinden.

    Was mir jetzt Problem bereitet ist, daß ich versuche einen Eintrag zu bearbeiten und dann wegzuschreiben.

    Auch das gelingt prinzipiell, allerdings habe ich festgestellt, das ich immer einen "versatz" im Index habe.
    Also wenn ich den dritten Eintag aus der Liste bearbeiten will, muß ich beim Arrayindex immer etwas abziehen um den richtigen Datensatz zu bekommen.
    Allerdings ist die Differenz nie gleich :(

    Code
    $markiert = GUICtrlRead($listview)
    $nr = $markiert - 5
    MsgBox(0,"","Name:" & $aRecords[$nr])

    Woran liegt das ?


    Hier nochmal das ganze Script:


    Hier noch die Stuktur meiner Adressdatei:

    Zitat


    Pan|Peter|306||0160-00000001
    Merkel|Angela|351||0160-1111111111
    Lustig|Peter|125|493|0160-500600900
    Engelke|Anke|105|271|0160-500600901
    Stamm|Baum|215|169|

    Gruß
    Wolke

    • Offizieller Beitrag

    Na!
    Das ligt daran dass, wenn ein falscher name bearbeitet wird $nr = -5 ist bzw -4 -3 -2 -1
    Also z.B.:
    Merkel|Angelia|34
    da fehlt doch was..da sind nämlich nur 3 angegebne und wenn das so ist gibt es auch logischer weise einen fehler, denn das würde dann so aussehen:
    aRecords[-5]...
    Beispiel wie mann es lösen könnte:

    Code
    If $nr < 6 Then
    	MsgBox(16,"","Invalid Name")
    	Return
    EndIf

    Ganzer code:

  • Ok, da habe ich etwas übersehen.
    Das liegt aber daran, das meine ursprüngliche Liste ca 100 Einträge hatte, ich habe dann einfach eine DummyListe gemacht, da sieht das wohl anders aus.

    Hier nochmal eine andere Adressliste.

    Dann wird der Fehler vielleicht nachvollziehbarer


    Gruß
    Wolke

  • Zitat

    Original von gtaspider
    Na!
    Das ligt daran dass, wenn ein falscher name bearbeitet wird $nr = -5 ist bzw -4 -3 -2 -1
    Also z.B.:
    Merkel|Angelia|34
    da fehlt doch was..da sind nämlich nur 3 angegebne und wenn das so ist gibt es auch logischer weise einen fehler, denn das würde dann so aussehen:


    Ich habe deine Nachricht nochmal genauer gelesen.

    Also mit der $nr hole ich nicht die Telefonnummer oder Handynummer, sondern das nummeriert die ganze Zeile

    siehe Bild:

    Gruß
    Wolke

  • Zitat

    Original von wolkenloser
    ...

    Code
    $markiert = GUICtrlRead($listview)
    $nr = $markiert - 5
    MsgBox(0,"","Name:" & $aRecords[$nr])

    Woran liegt das ?

    Schade das ich mir immer selber helfen muß
    :rolleyes:

    Bin im Englischen AUTOIT Forum fündig geworden, aber das ist immer so mühselig, weil dort immer soviel zu einem Thema steht, und ich doch rechtgroße Mühe habe mit der Übersetzung.

    Die Lösung für mein Problem sieht so aus, vielleicht nutzt es ja irgendwem.

    Code
    $nr = ControlListView("","",$listview,"GetSelected")
    $nr = $nr+1
    MsgBox(0,"","Name:" & $aRecords[$nr])

    Gruß
    Wolke

  • Hallo Hier das fertige Script zu meiner kleinen Telefonliste:-)

    Gruß
    Wolke

    2 Mal editiert, zuletzt von wolkenloser (10. Februar 2006 um 06:12)