PDA

Vollständige Version anzeigen : String von "Line Input" in typdef. hineinbekommen


sLUmp
11.07.2001, 15:59
Hallo Leute,

Ich möchte eine Datei auslesen, die in etwa so einen Zeilenaufbau hat:

SAPU 123456789
SAPD 987654321
SAPU 888888888

Dazu habe ich eine Datentyp in einem Modul definiert der wie folgt aussieht

Public Type DateiXYZ
DateiKz As String * 3
Ereignis As String * 2
EAN As String * 18
end Type

Jetzt sieht der Code so aus:
Sub sowieso()
Dim Dateizeile As DateiXYZ

Line Input #1, Dateizeile
end sub

Die Fehlermeldung kommt "Typen unverträglich", nämlich das Füllen der Variable "Dateizeile" im Befehl "Line Input...."

Mein Wunsch ist es eigentlich das ich aus dieser Ausgelesenen Zeile in der Datei eine
Tabelle fülle:

Dateizeile.EAN = Tabelle.[EAN-Nummer]
Dateizeile.DateiKz = Tabelle.[DateiKz-Nummer]
Dateizeile.Ereignis = Tabelle.[Ereignis-B]

Danach sollte die Tabelle so aussehen:
[EAN-Nummer] [DateiKz-Nummer] [Ereignis-B]
123456789 SAP U
987654321 SAP D
888888888 SAP U


Weis da jemand was???

WalterS
11.07.2001, 16:26
Hallo!

Ich verwende nur sehr selten selbst def. Variable. Hier scheint mir das Problem in der Länge von EAN (18 Zeichen def aber nur 9 Zeichen in Datei??) zu liegen.

Ich löse solch ein Problem durch

Dim Dateizeile As String
Line Input #1, Dateizeile

DateiKZ = left(Dateizeile,3)
Ereignis=mid(Datezeile,4,2)
EAN=mid(dateizeile,6)

Hier kann man dann auch leichter Fehler abfangen.

sLUmp
12.07.2001, 08:44
Danke für die Antwort Walter,

Ich habe das Problem so gelöst
Die Punkte im Code sind nur der besseren übersicht wegen.

Ich muss die Datei im "Random"-Modus öffnen und die Länge des
Datensatzes übergeben und die Länge ergibt sich aus den Längen
und der Anzahl der Felder im selbstdefinierten Typ(Anzahl * Länge).

Mit der Get-Anweisung fülle ich dann einfach meinen selbstdefinierten
Typ und schon funzt das janze auch :) :) :)

CODE:

Public Type Aufbau_QuellDatei
........DateiKz As String * 3
........Ereignis As String * 2
........EAN As String * 18
End Type


Function Quelldatei_lesen()

....Dim dDateizeile As Aufbau_QuellDatei
....Dim dQuellDatei As String
....Dim dImportDatei As String

....dImportDatei = Dir("c:\Text.txt")

....Do While dImportDatei <> ""
........dQuellDatei = "c:\Text.txt"
........Open dQuellDatei For Random Access Read Lock Read Write As #1 Len = Len(dDateizeile)
........While Not EOF(1)
............Get #1, , dDateizeile
........Wend
........dImportDatei = Dir()
....Loop
........Close #1

End Function