txt zusammenfassen

  • Hallo bin neu und frage gleich mal was.

    bin total unerfahren deshalb bitte etwas nachsicht :)

    ich habe 10 txt die ich gerne in eine zusammenfassen würde was nätülich auch mit copie und paste funktioniert. leider sind manche werte die selben und ich möchte jeden wert nur einmal in der neuen txt haben.

    habe mir über google schon was dazu durchgelesen leider habe ich das meiste nicht verstanden. kann es mir bitte jemand auf anfänger niveau erklären wie ich meine idee in die tat um setzten kann?

    VG Gandalf

    Einmal editiert, zuletzt von Gandalf (3. Januar 2013 um 17:14)

  • Sorry!
    Ok jede der txt sieht exta so aus:

    Txt1:
    Hallo
    Hallo3
    Hallo4
    Hallo8
    Hallo12

    Txt2:
    Hallo1
    Hallo
    Hallo20
    Hallo4

    Usw. Ich möchte halt alle werte in eine txt übertragen und doppelungen verhindern.

  • So?

    Spoiler anzeigen
    [autoit]

    Local $i, $aTemp, $aResult[1]
    Local $aFilenames = [ "1.txt", "2.txt", "3.txt", "4.txt" ] ; usw.
    Local $sResultFile = "Res.txt"

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

    For $i = 0 To UBound($aFilenames) - 1
    _FileReadToArray($aFilenames[$i], $aTemp)
    _ArrayConcatenate($aResult, $aTemp)
    Next

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

    _ArrayDelete($aResult, 0)
    $aResult = _ArrayUnique($aResult)
    _FileWriteFromArray($sResultFile, $aResult, 0, 0, @CRLF)

    [/autoit]


    Gruss Shadowigor

  • Ich probiere es morgen...

    Kann ich denn dann einfach $aResult in eine txt übertragen (bekomme ich hin)? Oder macht das skript das bereits durch die erwähnung in zeile 4?

    Ich habe jetzt zwar nucht alle verstanden aber wenn es funktioniert werde ich mir die Hilfe datei dazu noch ansehen um es nach zu vollziehen.
    Kannst du es sonsz noch nen bissel kommentieren damit ich das ganze besser verstehe? Danke!
    Bis morgen

  • Also ist aresult das ergebnis...
    Sprich aresult sind alle txt ohne die übereinstimmungen...

    Kann ich denn dann per filewrite $aresult dann in ne neue txt eintragen lassen?

  • Das wird im Beispielscript von IPU ebenfalls schon gemacht, siehe Zeile 13:

    [autoit]

    _FileWriteFromArray($sResultFile, $aResult, 0, 0, @CRLF)

    [/autoit]

    Ist das nur so ein Gefühl oder hast du dir weder Script noch Kommentare überhaupt durchgelesen?
    Sollte man meiner Meinung nach übrigens kürzen können auf:

    [autoit]

    _FileWriteFromArray($sResultFile, $aResult)

    [/autoit]
  • Hallo ich nochmal

    wenn ich in den selben ordner in dwem auch das skript liegt jetzt die 4 txt abspeichere (habe sie 1, 2, 3, 4 genannt) und das skript starte kommt nen fehler.

    in line 3
    subscript used with non-array variable


    was mache ich falsch?

  • Du greifst mit einem Array-Index auf ein Variable zu, die kein Array ist.

    Mehr kann ich die ohne das Du dein Script bekannt gibst, nicht sagen.
    Die Beispiele aus Beitrag #4 & #6 können in Zeile 3 den Fehler eigentlich nicht erzeugen.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Seit wann unterstützt denn AutoIt Array Deklaration ohne explizite Angabe der Größe? Soweit ich weiß, gibt es das erst seit Beta-Version 3.3.9.3.
    Damit es auch im Standard-Release funktioniert, sollte das hier:

    [autoit]

    Local $aFilenames = [ "1.txt", "2.txt", "3.txt", "4.txt" ] ; usw. ;Wir definieren den Array "aFilenames" und geben ihm die Werte "1.txt", "2.txt", "3.txt" und "4.txt".

    [/autoit]


    So aussehen:

    [autoit]

    Local $aFilenames[4] = [ "1.txt", "2.txt", "3.txt", "4.txt" ] ; usw. ;Wir definieren den Array "aFilenames" und geben ihm die Werte "1.txt", "2.txt", "3.txt" und "4.txt".

    [/autoit]


    Siehe:

    Zitat von AutoIt v 3.3.9.3 - Changelog

    - Added #1191: Explicit size of arrays optional for explicit initialization.

  • Ups... mein Fehler :whistling: Und die Includes hab ich auch noch vergessen :pinch: Danke IPU. So langsam sollte ich doch wissen, dass sich immer ein kleiner Fehler einschleicht wenn man das Script nicht testet... ^^

  • Hallo
    habe noch ein problem:

    [autoit]

    $iniread = IniRead ("Configurationini", "Configuration", "Firststart?", "0")
    #NoTrayIcon
    If $iniread <> 1 Then
    IniWrite ("Configuration.ini", "Configuration", "Firststart?", "1")
    MsgBox (0,"vzv","vztv")
    EndIf

    [/autoit]

    es soll halt nur eine ini erstellt werden wenn noch keine da ist oder der wert in der ini nicht 1 ist.
    ich habe schon ne stunde probiert und probiert bekomme es aber leider nicht hin. :(

    kann mir da jemand helfen?

  • komisch!

    also bei mir läuft er jedes mal (egal was ich mache) bis zur msgbox durch sprich er schreibt die ini jedes mal neu. das soll er aber nicht. lediglich das aller erstemal danach soll ja nur geprüft werden ob die ini besteht und wenn ja dann soll er einfach weiter im skript gehen falls nein dann die ini erstellen.

  • Ups.. Das habe ich gar nicht getestet. ^^ Ja das passiert bei mir auch, aber wenn man dein Script genauer anschaut ist das überhaupt nicht komisch ;).
    In der ersten Zeile versuchst du nämlich den Wert aus einer Datei namens "Configurationini" auszulesen. Dann schreibst du einen Wert in einer andere Datei mit Namen "Configuration.ini" :P.
    Versuchs mal so:

    Spoiler anzeigen
    [autoit]

    $iniread = IniRead ("Configuration.ini", "Configuration", "Firststart", 0)
    #NoTrayIcon
    If $iniread <> 1 Then
    IniWrite ("Configuration.ini", "Configuration", "Firststart", 1)
    MsgBox(0, "vzv", "vztv")
    EndIf

    [/autoit]