Danke erstmal für deine Hilfe.
Ich werde wahrscheinlich die eine oder andere Frage noch haben....bis dahin
Gruß
Norman
Danke erstmal für deine Hilfe.
Ich werde wahrscheinlich die eine oder andere Frage noch haben....bis dahin
Gruß
Norman
da bin ich wieder
Nun habe ich hoffentlich eine abschliessende Frage.
In der ersten For schleife soll erst die 1.htm Datei eingelsen ausgewertet werden dann die 2.htm datei usw.
_ArrayDisplay($aResult) zeigt mir auch alle 3 Dateien an nur werden diese nicht in die Console geschrieben sondern immer nur das erste.
Was mache ich hier falsch?
Gruß
Norman
#include <array.au3>
#include <string.au3>
#include <Excel.au3>
Global $array, $aResult, $file, $i, $sString, $sText, $sText2
[/autoit][autoit][/autoit][autoit]global $array[11]
[/autoit][autoit][/autoit][autoit]For $s = 1 to 3
$sText = FileReadLine("C:\Users\"& @UserName &"\Documents\Folder\"& $s &".htm",82)
$Pob_text = FileReadLine("C:\Users\"& @UserName &"\Documents\Folder\"& $s &".htm",82)
$plz_ort = FileReadLine("C:\Users\"& @UserName &"\Documents\Folder\"& $s &".htm",82)
$sText &= FileReadLine("C:\Users\"& @UserName &"\Documents\Folder\"& $s &".htm",83)
$tText = FileReadLine("C:\Users\"& @UserName &"\Documents\Folder\"& $s &".htm",84)
$aResult = StringRegExp($sText, '(?s)"fname">(.*?)<(?:.*?)"spotft">(.*?)<br>(?:.*?)Tel:(.+?)<br>', 1, 1)
[/autoit][autoit][/autoit][autoit]$_Pob = StringRegExp($Pob_text, '"spotft">(.*?)POB(.*?)(?:.*?)', 1, 3)
$_ort = StringRegExp($plz_ort, '(?s)(?:.*?), POB (?:.*?), (.*?) (.*?)<br>', 1, 3)
_ArrayDisplay($_ort)
_ArrayDisplay($aResult)
$strasse = StringSplit($aResult[1], ",",1)
[/autoit][autoit][/autoit][autoit]_ArrayAdd($array,$aResult[0])
_ArrayAdd($array,"")
For $i = 0 To UBound ($strasse)-1
_ArrayAdd($array,$strasse[$i])
Next
If IsArray($_ort) Then
ConsoleWrite($array[11] & @CRLF)
ConsoleWrite($array[14] & @CRLF)
ConsoleWrite($aResult[2] & @CRLF)
ConsoleWrite($_ort[0] & " ")
ConsoleWrite($_ort[1]& @CRLF)
Else
ConsoleWrite($array[11] & @CRLF)
ConsoleWrite($array[14] & @CRLF)
ConsoleWrite($aResult[2] & @CRLF)
EndIf
next
Hi,
erkenne folgendes Problem:
Das Array $array wird nie neu überschrieben, bzw. sein Inhalt gelöscht.
Mit
_ArrayAdd($array,$aResult[0])
_ArrayAdd($array,"")
For $i = 0 To UBound ($strasse)-1
_ArrayAdd($array,$strasse[$i])
Next
fügst du an dasselbe Array, dass du bereits für die anderen Dateien benutzt, weitere Werte an, die nun einen anderen Index tragen als sie eigentlich tragen sollten.
Da du mit
ConsoleWrite($array[11] & @CRLF)
ConsoleWrite($array[14] & @CRLF)
aber nur diesselben Index abfrägst, werden die neuen Inhalte nicht ausgegeben.
Also, ein vereinachtes Beispiel:
Bei Datei eins:
[0] Wert A aus Datei 1
[1] Wert B aus Datei 1
[2] Wert C aus Datei 1
Nun fügst du für Datei zwei einfach nur weitere Elemente an, als die alten Positionen zu überschreiben (verursacht durch _ArrayAdd)
Die Liste sieht also nun so aus:
[0] Wert A aus Datei 1
[1] Wert B aus Datei 1
[2] Wert C aus Datei 1
[3] Wert A aus Datei 2
[4] Wert B aus Datei 2
[5] Wert C aus Datei 2
So setzt sich das mit der 3. Datei dann fort:
[0] Wert A aus Datei 1
[1] Wert B aus Datei 1
[2] Wert C aus Datei 1
[3] Wert A aus Datei 2
[4] Wert B aus Datei 2
[5] Wert C aus Datei 2
[6] Wert A aus Datei 3
[7] Wert B aus Datei 3
[8] Wert C aus Datei 3
Mit dem hier:
[autoit]ConsoleWrite($array[11] & @CRLF)
ConsoleWrite($array[14] & @CRLF)
ConsoleWrite($aResult[2] & @CRLF)
ConsoleWrite($_ort[0] & " ")
ConsoleWrite($_ort[1]& @CRLF)
frägst du aber immer nur die ersten Elemente ab - die neuen aus den anderen Dateien werden gar nicht ausgegeben.
Lösungsansatz:
Arbeite nicht mit
_ArrayAdd
[/autoit]sondern bestimmte die Indices lieber von Hand, sofern du immer die Daten der aktuellen Datei alleine ausgeben möchtest.
Wenn du alle Elemente ausgeben möchtest, solltest du dir ein Konstrukt folgender Art basteln:
For $i = 0 To Ubound($array) - 1
ConsoleWrite($array[$i] & @CRLF)
Next
(Leider nicht getestet, enthält möglicherweise Fehler aufgrund einer längerer AutoIt-Pause)
Ich hoffe, ich habe das Problem richtig erfasst und konnte helfen,
Gruß stay
Ich blicke gerade selber nicht durch. :wacko:
Wenn ich den Dateinamen in dem Script manuell ändere funktioniert es. Nur wenn ich es in es in eine Schleife einbaue nicht.
EDIT:
Habe es gerade rausgefunden. Verwende jetzt nicht mehr $array.
Gruß
Norman