|
| Split & multidimentional arrays Fra : ST |
Dato : 27-08-04 19:57 |
|
Hej, jeg har tidligere lagt et indlæg i gruppen som omhandler indlæsning af
komma/tab-separerede filer i gruppen.
Jeg har ingen problemer med kommaseparerede filer. Jeg kan læse en
2-dimensionel kommasepareret fil op i hukommelsen på
følgende måde
Open Filename For Input As #FileNo
Do Until EOF(FileNo)
Input #FileNo, Count, Coordinates
XY = XY + 1
Loop
Seek #FileNo, 1
ReDim CoastLine(XY - 1, 1)
For z = Lbound(coastline) to Ubound(coastline)
Input #FileNo, CoastLine(z, 0), CoastLine(z, 1)
Next z
Close FileNo
End If
Jeg har fået noget hjælp med Split funktionen, men så vidt jeg kan se kan
den kun lave et 1-dimensionelt array ud af min 2-dimensionelle fil.
Skal jeg virkelig til at omdanne et 1-dimensionelt array til et
2-dimensionelt for at få læst data ind, eller kan det gøres lige så simpelt
som ovenfor.
(((Hele problematikken kommer af, at man i Danmark bruger komma som
decimalseparator).
| |
ST (30-08-2004)
| Kommentar Fra : ST |
Dato : 30-08-04 18:32 |
|
Så lykkes det selv at finde ud af det.
"ST" <ST@notvalid.dk> wrote in message
news:412f83ff$0$238$edfadb0f@dread16.news.tele.dk...
> Hej, jeg har tidligere lagt et indlæg i gruppen som omhandler indlæsning
af
> komma/tab-separerede filer i gruppen.
>
> Jeg har ingen problemer med kommaseparerede filer. Jeg kan læse en
> 2-dimensionel kommasepareret fil op i hukommelsen på
> følgende måde
>
> Open Filename For Input As #FileNo
> Do Until EOF(FileNo)
> Input #FileNo, Count, Coordinates
> XY = XY + 1
> Loop
>
> Seek #FileNo, 1
> ReDim CoastLine(XY - 1, 1)
> For z = Lbound(coastline) to Ubound(coastline)
> Input #FileNo, CoastLine(z, 0), CoastLine(z, 1)
> Next z
> Close FileNo
> End If
>
>
> Jeg har fået noget hjælp med Split funktionen, men så vidt jeg kan se kan
> den kun lave et 1-dimensionelt array ud af min 2-dimensionelle fil.
>
> Skal jeg virkelig til at omdanne et 1-dimensionelt array til et
> 2-dimensionelt for at få læst data ind, eller kan det gøres lige så
simpelt
> som ovenfor.
>
> (((Hele problematikken kommer af, at man i Danmark bruger komma som
> decimalseparator).
>
>
| |
Jonas Schmeltz Aaber~ (30-08-2004)
| Kommentar Fra : Jonas Schmeltz Aaber~ |
Dato : 30-08-04 20:05 |
|
"ST" <ST@notvalid.dk> skrev i en meddelelse
news:41336485$0$237$edfadb0f@dread16.news.tele.dk...
> Så lykkes det selv at finde ud af det.
Må vi høre?
| |
ST (31-08-2004)
| Kommentar Fra : ST |
Dato : 31-08-04 10:38 |
|
> Må vi høre?
Dim XY As Long
Dim Filename As String
Dim FileNo As Integer
Dim MyLine As String
Dim SplitFile() As String
Dim Coastline() As Double
Dim z As Long
XY = 0
cmddisp.Filename = "*.dis"
cmddisp.Filter = "Display line files|*.dis|All files|*.*"
cmddisp.ShowOpen
Filename = cmddisp.Filename
If Len(Filename) > 0 Then
FileNo = FreeFile ' læser antal linier i filen
Open Filename For Input As #FileNo
Do Until EOF(FileNo)
Line Input #FileNo, MyLine
XY = XY + 1
Loop
ReDim Coastline(XY - 1, 1) 'dimensionerer arrayet der skal indeholde den
opsplittede fil
z = 0
Seek #FileNo, 1
Do Until EOF(FileNo)
Line Input #FileNo, MyLine 'indlæser filen linie for linie
SplitFile = Split(MyLine, vbTab) 'splitter filen op (tabulatorsepareret)
Coastline(z, 0) = Val(SplitFile(0))
Coastline(z, 1) = Val(SplitFile(1))
z = z + 1
Loop
Close FileNo
End If
End sub
| |
|
|