ini read schleife wie?

  • Wie kann ich das vereinfachen?


    [autoit]

    Global $IniPath = @ScriptDir & "\Toolbar.ini"
    $text1 = IniRead ($IniPath, "Button1", "text", "Toolbar.ini nicht lesbar")
    $text1 = IniRead ($IniPath, "Button1", "klustern", "0")
    $text1 = IniRead ($IniPath, "Button1", "Produkt", "0")
    $text1 = IniRead ($IniPath, "Button1", "Tätigkeit", "0")
    $text1 = IniRead ($IniPath, "Button1", "Thema", "0")

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

    $text2 = IniRead ($IniPath, "Button2", "text", "Toolbar.ini nicht lesbar")
    $text2 = IniRead ($IniPath, "Button2", "klustern", "0")
    $text2 = IniRead ($IniPath, "Button2", "Produkt", "0")
    $text2 = IniRead ($IniPath, "Button2", "Tätigkeit", "0")
    $text2 = IniRead ($IniPath, "Button2", "Thema", "0")

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

    $text3 = IniRead ($IniPath, "Button3", "text", "Toolbar.ini nicht lesbar")
    $text3 = IniRead ($IniPath, "Button3", "klustern", "0")
    $text3 = IniRead ($IniPath, "Button3", "Produkt", "0")
    $text3 = IniRead ($IniPath, "Button3", "Tätigkeit", "0")
    $text3 = IniRead ($IniPath, "Button3", "Thema", "0")

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

    $text4 = IniRead ($IniPath, "Button4", "text", "Toolbar.ini nicht lesbar")
    $text4 = IniRead ($IniPath, "Button4", "klustern", "0")
    $text4 = IniRead ($IniPath, "Button4", "Produkt", "0")

    [/autoit]


    Please Help

  • Mit

    [autoit]

    IniReadSection

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hat soweit geklappt jetzt ist alles in ein Array > wie kann ich gezielt alles aus dem Array auslesen, ich bekommt immer nichts
    zruück wenn ist sage _ArrayToString($text4, "|", 1,5)

    ich weis auch nicht wie ich das mit $text1, text2, text3, .... ändern kann das ist bei mir dynamisch je nachdem wieviele funktionen jeder in der ini datei hinzufügen möchte - please Help << NEWBEE >> :wacko:

  • Du solltest dir mal das Array-Tutorial von BugFix anschauen (ist in seiner Signatur verlinkt).

    Schau dann mal hier rein:

    [autoit]

    #include <Array.au3>

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

    Global $a_Ini = IniReadSection (@ScriptDir & "\Toolbar.ini", "Button1")
    _ArrayDisplay ($a_Ini)

    [/autoit]

    Das sollte dir helfen zu verstehen, wie IniReadSection funktioniert...

    Um den Wert von "Tätigkeit" zu bekommen, müsstest du auf [4][1] zugreifen.

    [autoit]

    MsgBox (0, "", $a_Ini[4][1])

    [/autoit]
  • Wie kann ich mit inireadsection mehr als eine Zeile auslesen bsp

    [Funktion]
    Text= .. ..Text1 .......
    .....Text weiter ......
    ..... Weiterer Text .....
    Key = 1
    Produkt = &quot;&quot;

    Ist das möglich?


    Gesendet von meinem X8 mit Tapatalk

  • Das ist dann keine Standardkonforme ini und mit den Inifunktionen kannst das garnicht auslesen.

    Da musst es manuell mit den FileRead einlesen und mit den String-Funktionen verarbeiten.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Kann mir jemand ein bsp geben? Mit auslessen komm ich noch hin aber mit der Zeile finden nicht
    ;(

    Gesendet von meinem X8 mit Tapatalk

  • Wieso verwendest du nicht einfach eine richtige INI und schreibst alles in eine Zeile, ggf. mit CRLF dazwischen?

  • Wieso verwendest du nicht einfach eine richtige INI und schreibst alles in eine Zeile, ggf. mit CRLF dazwischen?


    CRLF kann in INI's nicht verwendet werden, deshalb arbeite ich in [Beispiel] Textbausteine verwalten (kleines Update) vor dem Speichern mit StringReplace und beim Einlesen vor dem Anzeigen auch wieder.

    @christiancdj: Stell einmal deine INI-Datei ein und beschreibe genau was du erreichen willst. Dein Beispiel aus dem Eröffnungsbeitrag würde auch nicht funktionieren, da du laufend Variablen mit neuen Inhalt aus der INI überschreibst,

    mfg autoBert

  • Das @CRLF in der INI nicht funktioniert war mir klar. Ich wollte damit nur sagen, das er so wie du in deinem Beispiel das machen kann. Deswegen hab ich ja auch nicht das @ davor geschrieben ;)

  • Oder du schreibst es in ein .txt datei & lässt dir die dan mit FileRead() ausgeben.

    MfG Nico

    MfG - Mit freundlichen Grüssen

    die Welt liegt uns zu Füssen, den wir steh'n drauf

    wir geh'n drauf für ein Leben voller Schall und Rauch

    bevor wir fall'n, fall'n wir lieber auf.

  • Wofür soll der der Zeileumbruch gut sein, um es besser lesen zu können?
    Ansonsten anstelle des Zeilenumbruchs ein Ersatzzeichen setzen zum Beispiel | und dann alles in eine Zeile.
    Ist ja mit Stringsplit/Replace oder String2array wieder wandelbar.

    Wegen Schleife

    [autoit]

    #include <Array.au3>

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

    $f_ini = @DesktopDir & "\Inhalt.ini"

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

    IniWriteSection($f_ini,"Allgemein","Key1=Wert1")
    IniWrite($f_ini,"Allgemein","Key2","Wert2")
    IniWrite($f_ini,"Allgemein","Key3","Wert3|Wert4|Wert5|Wert6")

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

    $a_array= IniReadSection($f_ini,"Allgemein")

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

    For $i = 1 to ubound($a_array,1) -1
    If StringInStr($a_array[$i][1],"|") Then

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

    ;~ $a_String = StringSplit($a_array[$i][1],"|")
    ;~ _ArrayDisplay($a_String)

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

    ;~ oder mit replace

    $s_String = StringReplace($a_array[$i][1],"|",@CRLF)
    Msgbox(0,$i,$s_String)

    Else
    Msgbox(0,$i,$a_array[$i][1])
    EndIf
    Next

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

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

    3 Mal editiert, zuletzt von Dietmar (9. Mai 2012 um 10:32)


  • Siehe Beitrag von autoBert ;)

  • @m-obi
    was hast Du denn für Effekte... auch wenn mehrere schon was Vergleichbares voergeschlagen hatten,
    hatte der Threasstarter dennoch den Wunsch nach einem Beispiel geäußert.
    Das hatte ich nicht entdecken können und daher etwas bereitgestellt.
    Wenn man sich dafür dumme Sprüche anhören muss.. na dann besten Dank :thumbdown:

    Gruß Dietmar

    Der Sinn des Vollzitats erschliesst sich mir auch nicht...... naja egal.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Dietmar: In dem Beispiel von autoBert u.a. in Zeile 112. Und Entschuldigung wegen dem Fullquote und das ich damit dann wahrscheinlich deinen Monitor gesprengt habe und dein Auffassungsvermögen. Im übrigen hab ich in meinem letzten Post keinen dummen Spruch gefunden.
    Achja.......beim nächsten Mal bitte Spoiler verwenden.

  • Zitat

    Und Entschuldigung wegen dem Fullquote und das ich damit dann wahrscheinlich deinen Monitor gesprengt habe und dein Auffassungsvermögen


    Du meinst wohl nen Clown gefrühstückt zu haben. Wie kommst Du auf das schmale Brett Dir so etwas rauszunehmen.
    Zumindest hast Du Auffassungsvermögen richtig geschrieben.
    Ist aber für Dich vermutlich ein Leichtes. Wird ja in Deinem Attests vermutlich häufiger erwähnt.
    Spoiler wäre übrigens auch für Dich "Master-OBI" angebracht gewesen. Für mich bleibts dabei:

    MOBY Top (zumindest früher)
    m-obi Flop (seit kurzem)

    Und nun kannst Du in anderen Foren weiter trollen.

    Sry Christian, das Dein Thread für so etwas herhalten muss.
    Aber ich lass mir ja nicht jeden Sche.. gefallen.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Dietmar dein Problem ist nun genau wo? m-obi hat dich nur darauf hingewiesen, dass das was du als Beispiel gepostet hast so auch schon in dem von autoBert gepostetet Links steht, nicht mehr und nicht weniger. Von daher ist dein Reaktion auf seinen Hinweis nicht angebracht.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • A.) habe ich mir das von Autobert nicht angesehen und halt nur ein Beispiel gepostet was mit einem Blick zu überschauen ist
    Warum man da mit einem Fullqoute etc. drauf reagieren muss ist mir nicht verständlich.
    Kommt mir vor wie ein Vekehrsschild, welches auf ein überflüssiges Verkehrschild in 5 km hinweist.
    Soll heissen, wenn Ihm mein Beitrag schon als Wiederholung vorkam, warum setzt er es dann so fort? ?(
    B.) Rege ich mich eigentlich über mehr darüber auf, von Ihm, mein Auffassungsvermögen in Frage stellen zu lassen.
    Von jemanden, den ich nicht kenne bzw. der mich nicht kennt, finde ich das ("ohne Smiley") schon ne mittelschwere Frechheit.

    @m-obi btw. Monitor ist 1920x1200 auch hier musst Du Dir keine Gedankenken machen.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o