1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. subzero007

Beiträge von subzero007

  • Diverse dateien zeile lesen und addieren...

    • subzero007
    • 14. Dezember 2010 um 10:59

    Hey,

    Ich will von diversen dateien die erste zeile lesen "sind nur zahlen" und anschliessen addieren und dann die summe daraus bilden.
    Das lesen klappt auch soweit so sieht mein consolewrite aus:
    1
    7
    10
    22
    11
    228
    13
    55
    2
    11
    571
    57
    5
    69
    1
    84
    10
    1
    5
    1
    2
    18
    148
    5
    14
    15
    2
    68
    2
    2
    6

    Wie kriege ich jetzt die summe daraus??

    Spoiler anzeigen
    [autoit]

    $file = FileOpen($sReports&"\"&$addGUID[$i][1]&'.knz' , 0)
    If $file = -1 Then
    ; MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

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

    ; Zeilen des Textes einlesen bis EOF
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    ;MsgBox(0, "Zeile gelesen:", $line)
    Global $anzahl
    Global $ganzahl
    $ganzahl = $anzahl + $line

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

    Wend
    ConsoleWrite($ganzahl&@CRLF)
    FileClose($file)

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

    Next
    EndIf

    [/autoit]
  • IniReadSection -> InideleteSection

    • subzero007
    • 10. Dezember 2010 um 15:10

    inidelete habe ich schon gefunden....
    mir ging es nur darum wie kann ich alle schlüssel die vorhanden sind in einer sektion löschen???

  • IniReadSection -> InideleteSection

    • subzero007
    • 10. Dezember 2010 um 14:08

    Hallo,
    welche möglichkeit habe ich wie bei IniReadSection alle schlüssel und werte zu löschen...

  • Ini Read Problem

    • subzero007
    • 9. Dezember 2010 um 17:06

    nein ich will die daten nicht im Code festverdratet haben ich will mit einer ini arbeiten

  • Ini Read Problem

    • subzero007
    • 9. Dezember 2010 um 16:40

    Verstehe ich nicht.
    Ich will ja die daten aus der ini übernehmen und nicht fest im Code haben?
    oder verstehe ich was falsch?

  • Ini Read Problem

    • subzero007
    • 9. Dezember 2010 um 15:49

    Ich habe ein Funktionieren Code wo ich einen teil nur mit einer ini steuern möchte:

    Ich möchte den Part zeile 11 -15 nur durch eine ini steuern wie mache ich das:
    so würde die ini aussehen:

    HWTyp-GUID]
    IGEL THINCLIENT 3210 LX, LINUX, 533MHZ,=xxx
    HP COMPAQ 2510P/ULTRALIGHT/1,2GHZ/1GB/80GB/12,1"=cccc
    FSC ESPRIMO P5625 HE-TOWER ATH.64 X2/2GB/80GB/DVD=iiiiii
    LENOVO M58 HE-TOWER/E8400/4GB/160GB/DVD-BRENNER=lllll
    FTS ESPRIMO P5731 TOWER/E5500/4GB/250GB/DVD-LW=ppppp


    dabei sollte die $aGUID[5][2]
    demensprechen angepasst werden wieviele schlüssel ich habe wollte es dynamisch halten.

    also falls ich auch mehrer werte habe also wenn bei HWTyp-GUID 10 schlüssel vorhanden sind dann.
    sollte es so heissen $aGUID[10][2]

    Und natürlich die schlüssel und werte jeweils mit übernehmen eine idee?


    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <array.au3>
    #include <File.au3>
    #include <SQLite.au3>
    Global $sIni = @ScriptDir & "\data.ini"
    Global $sFile = @ScriptDir & "\test.txt"
    If Not FileExists($sIni) Then IniWrite($sIni, "Reports", "Ordner", @ScriptDir & "\reports")
    Global $sReports = IniRead($sIni, "Reports", "Ordner",@ScriptDir & "\reports")
    If Not FileExists($sReports) Then DirCreate($sReports)
    Dim $aResult[1][2]
    Dim $aGUID[5][2] = [["IGEL THINCLIENT 3210 LX, LINUX, 533MHZ,", "IGEL cccc,"], _
    ['HP COMPAQ 2510P/ULTRALIGHT/1,2GHZ/1GB/80GB/12,1"', "iii"], _
    ["FSC ESPRIMO P5625 HE-TOWER ATH.64 X2/2GB/80GB/DVD", "jjjjjj"], _
    ["LENOVO M58 HE-TOWER/E8400/4GB/160GB/DVD-BRENNER", "ppppp"], _
    ["FTS ESPRIMO P5731 TOWER/E5500/4GB/250GB/DVD-LW", "mmmmm"]]

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

    For $i = 2 To _FileCountLines($sFile)
    $sLine = FileReadLine($sFile, $i)
    ;ConsoleWrite($sLine & @CRLF)
    If StringInStr($sLine, "P010", 1) And StringInStr($sLine, "Aktiv", 1) Then
    $aTmp = StringSplit($sLine, ";", 1)
    If IsArray($aTmp) And $aTmp[0] = 30 Then
    $iIndex = _ArraySearch($aResult, $aTmp[4], 0, 0, 1, 0, 1, 0)
    If $iIndex = -1 Then
    _Array2DAdd($aResult, $aTmp[4] & "|1")
    ElseIf $iIndex >= 0 Then
    $aResult[$iIndex][1] += 1
    EndIf
    EndIf
    EndIf
    Next
    For $i = 1 To UBound($aResult)-1
    $index = _ArraySearch($aGUID, $aResult[$i][0])
    ;If Not @error Then
    ;IniWrite($sIni, "HWTyp-GUID", $aResult[$i][0], $aGUID[$index][1])
    $tmp = FileOpen($sReports & "\" & $aGUID[$index][1]&'.knz',2)
    FileWrite($tmp,$aResult[$i][1])
    FileClose($tmp)
    Else
    MsgBox(0,0,"Keine GUID für " & $aResult[$i][0] & " gefunden")
    EndIf
    Next
    _ArrayDisplay($aResult)
    _ArrayDisplay($aResult)

    [/autoit]
  • String Verarbeitung

    • subzero007
    • 7. Dezember 2010 um 14:55

    Bin Gerade Dabei es mit

    [autoit]

    _ArrayFindAll

    [/autoit]

    zu lösen aber komme ich nicht weiter.
    hat jemand eine idee oder einen vorschlag?

  • String Verarbeitung

    • subzero007
    • 7. Dezember 2010 um 13:35

    Hey,
    diese value`s holle ich aus einem anderen system die ich mit meinen Zahlen füttern möchte.
    SQLite würde ich ja gerne nehmen weiss aber nicht wie ....
    Könnt ihr mir helfen?

  • String Verarbeitung

    • subzero007
    • 7. Dezember 2010 um 12:55

    Danke für die Unterstützung:
    habe noch eine oder zwei fragen ;)

    so sieht mein Array aus:
    [0]||
    [1]|IGEL THINCLIENT 3210 LX, LINUX, 533MHZ,|14
    [2]|HP COMPAQ 2510P/ULTRALIGHT/1,2GHZ/1GB/80GB/12,1"|68
    [3]|FSC ESPRIMO P5625 HE-TOWER ATH.64 X2/2GB/80GB/DVD|229
    [4]|LENOVO M58 HE-TOWER/E8400/4GB/160GB/DVD-BRENNER|35
    [5]|IBM THINKPAD T61/T7500-2,2GHZ/2GB/160/DVD-RW/15,4"|150
    [6]|FTS ESPRIMO P5731 TOWER/E5500/4GB/250GB/DVD-LW|49
    [7]|FSC SCENIC W600 PWR TOWER PIV 2.8GHZ/512MB/40GB|579
    [8]|LENOVO TP T500/P8600-2,4GHZ/4GB/160/DVD-RW/15,4"|56
    [9]|VMWARE PC (VIRTUELL)|6
    [10]|IBM THINKPAD T41,P-M 1,6GHZ/512MB/40GB/14"/BLUETOO|1
    [11]|FSC ESPRIMO E5915 DESKTOP C3,3GHZ/1GB/80GB/DVD|26
    [12]|FSC CELSIUS W340 TOWER PIV 3.0GHZ/1GB/40GB/DVD|10
    [13]|HP XW8600 WORKSTATION/XEON 3,0GHZ/8GB/146GB/FX1700|10
    [14]|FSC ESPRIMO P5915 TOWER D820 2X2,8GHZ/1GB/80GB/DVD|55
    [15]|HP XW8400 WORKSTATION/XEON 3,0GHZ/8GB/146GB|84
    [16]|IBM THINKPAD T43,P-M2,0GHZ/1GB/80GB/14"/DVD-WRITER|18
    [17]|COMPAQ D510CMT TOWER/DESKT,C 1,7GHZ/256MB/40GB/DVD|5
    [18]|IBM THINKPAD T41,P-M 1,6GHZ/512MB/40GB/14"/|5
    [19]|IBM THINKPAD T42,P-M1,7GHZ/512MB/60GB/15"/CDRW/DVD|2
    [20]|IGEL THINCLIENT 332, 400MHZ CPU, 64MB RAM, LINUX|15
    [21]|DELL PRECISION T5500 WS/2X-E5530/12GB/600GB/FX5800|7
    [22]|SNI SCENIC XB PIII 800, DESKTOP, 256/10GB,SOUND,CD|2
    [23]|DELL PRECISION T5500 WS/1X-E5630/12GB/300GB/FX3800|1
    [24]|FSC SCENIC N300 DESKTOP C 2.6GHZ/512MB/40GB/DVD|13
    [25]|IBM THINKPAD T40|1
    [26]|FSC ESPRIMO P5616 HE-TOWER ATH.64 X2/2GB/80GB/DVD|11
    [27]|FSC ESPRIMO P5905 TOWER C2.93GHZ/1GB/160GB/DVD|13
    [28]|SNI SCENIC L PIV 1,5GHZ, TOWER, 256/40GB,SOUND,DVD|2
    [29]|COMPAQ N610C NOTEBOOK,P IV 1,8GHZ/256MB/20GB/14,1"|6
    [30]|IGEL THINCLIENT 3200 LCX COMPACT, LINUX, 533MHZ,|5
    [31]|HP 8510W/NB-WS/T7700/4GB/120GB/COMBO-DVD/CD-RW|5
    [32]|HP DIGITAL SENDER MODELL 9100C, 10 BASE-T|1
    [33]|LENOVO TP T500/P8400-2,2GHZ/4GB/160/DVD-RW/15,4"|2
    [34]|FSC SCENIC L TOWER PIV 2GHZ, 1GB/40GB, DVD-R|2


    Jetzt wollte ich das 2D Array durchsuchen und falls vorhanden die werte wie folgt anhand der Beipiel ini in einem Ordner Schreiben.
    GUID sollte die Datei genannt werden und in der Datei sollte dann die Anzahl.
    Ich wollte das Ganze Variabel Gestalten anhand der folgender INI.

    Beispiel ini:
    [Reports]
    Ordner=c:\test\reports
    [HWTyp-GUID]
    HP COMPAQ 2510P/ULTRALIGHT/1,2GHZ/1GB/80GB/12,1=B89BD56C-102C-4659-A172-4E00EC2D80F4
    FSC SCENIC W600 PWR TOWER PIV 2.8GHZ/512MB/40GB=2EF17A45-9DB2-4871-8AB8-BBEA55C2DBE2
    IBM THINKPAD T40=A7A8E459-F128-4F40-848A-87EB9CE4E634


    es sollten dann folgende dateien erstellt werden Unter "c:\test\reports":
    B89BD56C-102C-4659-A172-4E00EC2D80F4.log mit folgendem inhalt 68
    2EF17A45-9DB2-4871-8AB8-BBEA55C2DBE2.log mit folgendem inhalt 579
    A7A8E459-F128-4F40-848A-87EB9CE4E634.log mit folgendem inhalt 1

    Viellen Dank im Vorraus....

    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    #include <File.au3>
    Dim $aResult[1][2]
    $sFile = @ScriptDir & "\Alle-CI-Topcon.csv"

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

    For $i = 2 To _FileCountLines($sFile)
    $sLine = FileReadLine($sFile, $i)
    ;ConsoleWrite($sLine & @CRLF)
    If StringInStr($sLine, "PC010", 1) And StringInStr($sLine, "Aktiv", 1) Then
    $aTmp = StringSplit($sLine, ";", 1)
    If IsArray($aTmp) And $aTmp[0] = 30 Then
    $iIndex = _ArraySearch($aResult, $aTmp[4], 0, 0, 1, 0, 1, 0)
    If $iIndex = -1 Then
    _Array2DAdd($aResult, $aTmp[4] & "|1")
    ElseIf $iIndex >= 0 Then
    $aResult[$iIndex][1] += 1
    EndIf
    EndIf
    EndIf
    Next

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

    _ArrayDisplay($aResult)

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

    ;------------------------------------------------------------------------------------------------------------
    ;
    ; Function _Array2DAdd(ByRef $avArray, $sValue='')
    ;
    ; Description Redim Array Size and add an Array element at last position
    ; Works with any occurences in 2nd Dimension
    ; Works also with 1D-Array
    ;
    ; Parameter $avArray Given Array
    ; optional $sValue Value of new Element, parts must be seperate with '|'
    ;
    ; Return Succes -1
    ; Failure 0 and set @error
    ; @error = 1 given array is not array
    ; @error = 2 given parts of Element too less/much
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;------------------------------------------------------------------------------------------------------------
    Func _Array2DAdd(ByRef $avArray, $sValue = '')
    If (Not IsArray($avArray)) Then
    SetError(1)
    Return 0
    EndIf
    Local $i
    Local $UBound2nd = UBound($avArray, 2)
    If @error = 2 Then
    ReDim $avArray[UBound($avArray) + 1]
    $avArray[UBound($avArray) - 1] = $sValue
    Else
    Local $arValue
    ReDim $avArray[UBound($avArray) + 1][$UBound2nd]
    If $sValue = '' Then
    For $i = 0 To $UBound2nd - 2
    $sValue &= '|'
    Next
    EndIf
    $arValue = StringSplit($sValue, '|')
    If $arValue[0] <> $UBound2nd Then
    SetError(2)
    Return 0
    EndIf
    For $i = 0 To $UBound2nd - 1
    $avArray[UBound($avArray) - 1][$i] = $arValue[$i + 1]
    Next
    EndIf
    Return -1
    EndFunc ;==>_Array2DAdd

    [/autoit]
  • String Verarbeitung

    • subzero007
    • 6. Dezember 2010 um 12:03

    ich habe schonmal angefangen aber komme nicht weiter,
    Ich meine sogar das mein ansatz sogar falsch ist.
    Hat jemand eine idee wie man das lösen kann,
    komme absolut nicht weiter.........


    [autoit]

    Func _suchestring($string, $suche)
    Local $file = 'beispiel.csv'
    _FileReadToArray($file, $arfile)
    For $i = 1 To UBound($arfile) - 1
    $temp = StringSplit($arfile[$i], ";")
    ; _ArrayDisplay($temp)
    ;consolewrite($temp[18]&" "&$listviewtext&@CRLF)
    If $temp[17] = $ListViewText Then
    $besitzer = $temp[8]
    $hostincsveingetragen = 1
    EndIf

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

    Next
    EndFunc

    [/autoit]
  • String Verarbeitung

    • subzero007
    • 6. Dezember 2010 um 11:35

    Sorry,
    Das ist ja grauenhaft ;(
    war wohl noch zu früh und hatte keinen kaffe und stand im stau ;)
    Staus = Status
    Workstaion = Workstation
    Aktiv = Aktiv

  • String Verarbeitung

    • subzero007
    • 6. Dezember 2010 um 11:07

    Hey,

    habe folgendes Problem mit dieser Datei:
    Inhalt vom Anhang:
    CI;CI-ID;Materialnr;Beschreibung;ServiceKlasse;Staus;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;Hostname;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;
    ;00001;d000002;IBM T41;Workstaion Mobile;Aktiv;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;PC010xxxx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;
    ;00002;d000011;Dell;Workstaion;Deaktiviert;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;MPC010xxxx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;
    ;00011;d00033;HP;Workstaion Mobile;Aktiv;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;PC010xxxx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;
    ;00031;d00066;Lenovo;Workstaion Mobile;Aktiv;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;PC010xxxx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;
    ;00041;d00077777;ASUS;Workstaion Mobile;Aktiv;xx;xx;xx;xx;xx;xx;xx;xx;xx:xx;PC010xxxx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;xx;

    Ich möchte in dieser datei Alle Hostnamen Suchen die mit "PC010" beginnen und den Status Aktiv haben.
    Und anschliessend Alle gleichen Typen zäheln
    Also ungefähr so sollte das ergebniss sein;

    IBM T41 Ative Clients Anzahl 300
    Dell Ative Clients Anzahl 100
    HP Ative Clients Anzahl 1351

    Hat jemand eine idee oder vorschlag wie ich das machen kann?

    Dateien

    beispiel.csv.txt 755 Byte – 495 Downloads
  • _GUICtrlListView_GetItemTextArray

    • subzero007
    • 14. September 2010 um 11:03

    Hallo,

    ich habe in eine listview wenn ich einen item angeklicke hole ich mir den String mit _GUICtrlListView_GetItemTextArray(

    wie kann ich mir das item holen ohne es anzuklicken.

    PS:Es ist nur 1 item in der listview wie mache ich das?

    Danke

  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 13. September 2010 um 14:47

    Ich habe doch die orginal daten zugeschickt inklusiv xls und Screenshot und es ist ein @crlf ..
    hat jemand eine idee?

  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 13. September 2010 um 12:50

    laut Scite ist es einen crlf

    B
    ddd
    ff

    Dateien

    crlf.JPG 21,15 kB – 0 Downloads
  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 13. September 2010 um 12:23

    Hier mein Lauffähiges Script.

    Ich hoffe jemand kann mir helfen den fehler zu finden

    Dateien

    forum.7z 3,89 kB – 448 Downloads
  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 13. September 2010 um 11:28

    Übringens,
    habe meine erste funktion geprüft:
    mit consolwrite und MSGBOX

    Das Problem schein nur mit der Editbox zu geben.

  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 13. September 2010 um 11:19

    So habe es so umgesetzt,

    [autoit]

    Func _findxls($sFilePath, $sSuchbegriff)

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

    Local $oExcel = ObjCreate("Excel.Application")
    $oExcel.Visible = 0
    Local $oBook = $oExcel.Workbooks.Open($sFilePath)
    Local $oSheet = $oBook.Sheets(1)

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

    Local $Zelle, $Address
    $Zelle = $oSheet.UsedRange.Find($sSuchbegriff)
    If $Zelle <> '' Then
    $Address = $Zelle.Address
    ;$b = $oSheet.Range(StringReplace($Address, '$', '') ).Offset(0, 1).Value
    $oExcel = _ExcelBookOpen($sFilePath1, 0)
    $Address = StringReplace($Address, '$', '')
    MsgBox(0, "", _ExcelReadCell($oExcel, $Address+1 , 2))
    $b = _ExcelReadCell($oExcel, $Address+1 , 2)
    ConsoleWrite($b)
    ; die relative Adressierung: Offset(0, 2) verweist auf Zeile 0 (also dieselbe) und Spalte +2
    EndIf

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

    GUICtrlSetData($Edit1, $b)

    [/autoit]

    MSG BOX funktioniert es mit @crlf
    Consolwrite funktioniert es mit @crlf
    aber mit GUICtrlSetData($Edit1, $b) geht es nicht wer kann helfen wo liegt das Problem??

  • Excel Zelle lesen und in Editbox Schreiben Probleme mit @crlf

    • subzero007
    • 10. September 2010 um 14:02

    Hey ,

    ich habe folgendes Problem ich habe einen einzelne zelle die ich lese und die ich in einen Editbox reinschreiben müsste.

    meine zelle sieht so aus"Alles in einer Zelle":
    aaa
    bbb
    ccc
    ddd


    aber wenn ich das dan in die editbox reinschreibe sieht es so aus:
    aaabbbcccddd


    Hier meine Funktion was mache ich falsch oder was könnte ich besser machen?

    [autoit]

    Func _findxls($sFilePath, $sSuchbegriff)

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

    Local $oExcel = ObjCreate("Excel.Application")
    $oExcel.Visible = 0
    Local $oBook = $oExcel.Workbooks.Open($sFilePath)
    Local $oSheet = $oBook.Sheets(1)

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

    Local $Zelle, $Address
    $Zelle = $oSheet.UsedRange.Find($sSuchbegriff)
    If $Zelle <> '' Then
    $Address = $Zelle.Address
    $b = $oSheet.Range(StringReplace($Address, '$', '') ).Offset(0, 1).Value

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

    EndIf

    GUICtrlSetData($Edit1, $b)

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

    $oExcel.Application.Quit

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

    EndFunc

    [/autoit]
  • String verarbeitung

    • subzero007
    • 3. September 2010 um 15:47

    Hallo,
    habe ein kleines Problem wo ich nicht weiss wie ich das mache.

    Ich lese die IP vom Remote rechner aus.

    $ip = 192.168.100.27

    Ich möchhte die Broadcast addresse generieren also in diesem fall.

    $Broadcastt-ip = 192.168.100.255

    also alles was hinter dem 3 Punkt ist mit 255 ersetzen wie mache ich das?


    Vielen Dank vorab
    SubZero

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™