FileReadToArray -> bearbeiten -> FileWriteFromArray

  • Hallöchen,

    ich benötige wiedereinmal Eure Hilfe.

    Ich möchte einen bestimmten Teil einer html datei verändern.
    z.B. einen Tabellenbereich

    Spoiler anzeigen



    <!-- Table_insert_start -->
    <!-- xtablex --><table border="1" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td><!-- xtdx -->
    <!-- xtablex --><table border="0" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Datum:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xDATUMx -->28.05.2007<!-- xDATUMx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Name:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xNAMEx -->H. Mustermann<!-- xNAMEx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Änderung:</b></td><!-- xtdx -->
    <!-- xtdx --><td><!-- xTEXTx -->blablabla<!-- xTEXTx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xtdx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xbrx --><br><!-- xbrx -->
    <!-- Table_insert_ende -->

    das ganze sieht inetwa so aus:

    Datum: 28.05.2007
    Name: H. Mustermann
    Änderung: blablabla

    Über ein GUI gebe ich die Daten Datum, Name und Änderung ein,
    die im Spoiler gezeige Tabelle, bzw. Bereich der HTML Datei soll eingelesen
    werden und mit der neuen Eingabe erweitert werden, wobei das neuste
    Datum immer oben stehn sollte.
    z.B. so

    Spoiler anzeigen



    <!-- Table_insert_start -->
    <!-- xtablex --><table border="1" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td><!-- xtdx -->
    <!-- xtablex --><table border="0" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Datum:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xDATUMx -->31.05.2007<!-- xDATUMx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Name:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xNAMEx -->H. Müller<!-- xNAMEx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Änderung:</b></td><!-- xtdx -->
    <!-- xtdx --><td><!-- xTEXTx -->blablablaNEU<!-- xTEXTx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xtdx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xbrx --><br><!-- xbrx -->
    <!-- xtablex --><table border="1" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td><!-- xtdx -->
    <!-- xtablex --><table border="0" cellpadding="1" cellspacing="2" width="100%"><!-- xtablex -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Datum:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xDATUMx -->28.05.2007<!-- xDATUMx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Name:</b></td><!-- xtdx -->
    <!-- xtdx --><td nowrap><!-- xNAMEx -->H. Mustermann<!-- xNAMEx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtrx --><tr valign="top"><!-- xtrx -->
    <!-- xtdx --><td width="125" nowrap align="right"><b>Änderung:</b></td><!-- xtdx -->
    <!-- xtdx --><td><!-- xTEXTx -->blablabla<!-- xTEXTx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xtdx --></td><!-- xtdx -->
    <!-- xtrx --></tr><!-- xtrx -->
    <!-- xtablex --></table><!-- xtablex -->
    <!-- xbrx --><br><!-- xbrx -->
    <!-- Table_insert_ende -->

    das ganze sieht inetwa so aus:

    Datum: 31.05.2007
    Name: H. Müller
    Änderung: blablablaNEU

    Datum: 28.05.2007
    Name: H. Mustermann
    Änderung: blablabla


    folgendes hab ich gemacht,

    Spoiler anzeigen
    [autoit]


    $einzel_file = "c:\datei.htm"
    _FileReadToArray($einzel_file, $Input_A)
    For $i = 1 To UBound($Input_A) - 1
    $Strg_A = _StringBetween($Input_A[$i], '<!-- xtablex -->', '<!-- xtablex -->')
    If Not @error Then
    _ArrayAdd( $read_aenderungen,$Strg_A[0])
    EndIf
    $Strg_A = _StringBetween($Input_A[$i], '<!-- xtrx -->', '<!-- xtrx -->')
    If Not @error Then
    _ArrayAdd( $read_aenderungen,$Strg_A[0])
    EndIf
    $Strg_A = _StringBetween($Input_A[$i], '<!-- xtdx -->', '<!-- xtdx -->')
    If Not @error Then
    _ArrayAdd( $read_aenderungen,$Strg_A[0])
    EndIf
    $Strg_A = _StringBetween($Input_A[$i], '<!-- xbrx -->', '<!-- xbrx -->')
    If Not @error Then
    _ArrayAdd( $read_aenderungen,$Strg_A[0])
    EndIf
    Next

    [/autoit]


    somit habe ich das ganze file als array und den Bereich _stringbetween den
    ich verändern möchte
    jetzt weiß ich aber nicht mehr weiter


    man man man, da fragt man sich was nun leichter ist,
    das ganze einigermaßen verständlich zu formulieren oder das script dazu zu schreiben...

    Please Help

    Gruß Schandor

    PS, ne wieso isen das gelöst?? och mist, ist natürlich NICHT GELÖST

  • kannste das bitte noch etwas genauer erklären, es ist nicht ganz eindeutig was du eigentlich ändern möchtest ... und was soll das ganze @error-gedöns ?

    woran genau erkennt das script die stelle an der änderungen erfolgen sollen ?

  • Hallo,

    also, ich habe eine HTML Datei mit ganz vielen Namen und Telefonnummern,
    diese Namen und Telefonnummern werden sehr oft von unterschiedlichen Personen geändert, es weden Namen und Telefonnummern geändert,
    gelöscht und hinzugefügt.

    Im oberen Bereich dieser Datei soll ein Änderungsvermerkt eingefügt werden,
    wann wurde was von wem geändert.

    Da der Aufbau dieser HTML Datei sehr unübersichtlich ist und HTML selber
    nicht merkt wer was geändert hat, möchte ich ein GUI basteln,
    indem die Person X Datum, Name und was wurde geändert (Beschreibung) einträgt.

    Bei submit oder OK sollen die Werte "Datum, Name, Beschreibung"
    in den oberen Bereich bei Änderungsvermerk in dieser HTML Datei
    sortiert nach Datum eingefügt werden.

    Beispiel:

    Spoiler anzeigen


    Person X öffnet und editiert die HTML Datei,
    in Zeile 1395 wird die Telefonnummmer von H. Mustermann 0123 - 123456 in 06543 - 9998 01 geändert.
    Person X speichert und schließt die HTML Datei.

    Person X startet das AutoIt GUI, gibt Datum, Name und Beschreibung
    der Änderung ein und klickt auf OK.

    Beim betrachten dieser HTML Datei in einem Browser sieht man
    dann im oberen Bereich unter Änderungsvermerk das Person X
    am 24.05.07 die Telefonnummer von H. Mustermann geändert hat.

    "was soll das ganze @error-gedöns"
    wenn ich mir mit _arraydisplay das Array anschaue siehts ganauso aus wie ich es haben möchte, lasse ich das @error gedönse wech, dann fehlen einige Werte.

    Besten Dank

    Gruß Schandor

  • so, da bin ich wieder....

    ich habe es endlich geschafft das es funktioniert so wie ich es haben wollte...

    ich pack mal ne zip dran damit ihr wißt wovon ich hier die ganze zeit gesprochen habe.

    aber bitte bitte net lachen, so lange puschel ich mit autoit ja nicht rum....
    ich bin jedenfalls froh das es überhaupt funktioniert........


    ich würde euch nur bitten mir etwas beim aufräumen zu helfen, weil so wie
    es ist, siehts einfach schrecklich aus......


    PS. wenn ihr es benutzt, denkt bitte an die Pfadangaben im script.

    so long....

    Besten Dank
    Gruß Schandor