[Autoit] csv na multidimensionale array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Beste tweakers,

Ik zit al enkele dagen op een programmeer probleem te broeden maar ik kom er niet helemaal uit.
Ik wil een csv bestand per rij en kolom in een multidimensionale zodat ik per rij heel makkelijk elk deel van de kolom kan pakken met $array[1][1]. En per rij stukje code uitvoeren en dan weer de volgende rij tot het eind van het bestand.

Uit de help file plus wat op internet te zoeken heb ik wat code gevonden maar om dit te integreren tot een werkend stukje code wil mij maar niet lukken. Dan zit het hem vooral in nesting met arrays wat mij maar niet wil lukken om te begrijpen ! Tips ?

code:
1
2
3
4
5
6
7
8
9
#include <file.au3>
Dim $aRecords
If Not _FileReadToArray("error.log",$aRecords) Then
   MsgBox(4096,"Error", " Error reading log to Array     error:" & @error)
   Exit
EndIf
For $x = 1 to $aRecords[0]
    Msgbox(0,'Record:' & $x, $aRecords[$x])
Next


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim $lines,$Display, $NumCols
$lines = "Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"
;---------------------------------------------------------------------
;Lets convert a comma delimited string into a single dimension array
;---------------------------------------------------------------------
$Columns = StringSplit($lines, ",")
$NumCols = $Columns[0]
MsgBox(0,"Calculate # of Dimensions", "How many: " & $Columns[0])
;---------------------------------------------------------------------
;Lets build a multidimensional Array with enough columns
;---------------------------------------------------------------------
Dim $array[2][ $Columns[0] ]
For $i = 1 To $Columns[0]
    $array[1][$i-1] = $Columns[$i]
Next
;---------------------------------------------------------------------
;Display comma delimited string to a multidimensional Array
;---------------------------------------------------------------------
For $j = 1 To $NumCols
    $Display = $Display & "array[1]["&String($j-1)&"]" & Chr(9) & " = " & chr(9) & $array[1][$j-1] & @CRLF
Next
MsgBox(4096, "Your Multidimensional Array",$Display)

And this !! Is to go even further beyond!!!


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 12:16

Creepy

Tactical Espionage Splatterer

Wat lukt er precies niet? Wat gaat er mis? Wat had je wel verwacht? Wat zit er nu wel in je array?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Bijv dit :

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <file.au3>
Dim $aRecords, $lines
If Not _FileReadToArray("error.txt",$aRecords) Then
   MsgBox(4096,"Error", " Error reading log to Array     error:" & @error)
   Exit
EndIf
For $x = 1 to $aRecords[0]
    Msgbox(0,'Record:' & $x, $aRecords[$x])
        $Columns = StringSplit($lines, ",")
        for $y = 1 to $Columns[0] 
            MsgBox(0,"Calculate # of Dimensions", "How many: " & $y)
            MsgBox(0,"Calculate # of Dimensions", "How many: " & $Columns[$y])
        next
Next


In $Columns[$y] komt geen waarde in te staan !

And this !! Is to go even further beyond!!!


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ik spreek geen AutoIt, maar het lijkt me komen omdat $lines nergens gevuld wordt. Misschien wil je $aRecords[$x] gebruiken ofzo? Maar dit is eigenlijk iets om zelf te debuggen, natuurlijk. ;)

Waarom programmeer je eigenlijk in Autoit? Eerste keer dat ik het hier zie... :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
$lines was nog een overblijfsel wat ik vergeten heb weg te halen, heeft niks met de code zelf te maken.
Het debuggen lukt niet helemaal vandaar ;)

En ik heb voor Autoit gekozen omdat je hier toetsenbord en muiskliks mee kan uitvoeren.

And this !! Is to go even further beyond!!!


Acties:
  • 0 Henk 'm!

  • TJHeuvel
  • Registratie: Mei 2008
  • Niet online
Ter verificatie, staat er wel iets in $aRecords?

AutoIt:
1
$x = 1 to $aRecords[0]

Dit ziet er ook niet zo best uit, het moet toch x tot de lengte van $aRecords zijn?

offtopic:
In before met programmeertaal X kan je ook muiskliks versturen!

[ Voor 19% gewijzigd door TJHeuvel op 14-05-2010 16:17 ]

Freelance Unity3D developer


Acties:
  • 0 Henk 'm!

  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
$lines even aangepast naar $aRecords[$x] en hij doet het :) Hmm, waarom zag ik dat gister niet ! Ook niet na de opmerking van pedorus 8)7

And this !! Is to go even further beyond!!!

Pagina: 1