| |
VB.NET - Ein- und UmsteigerTextdatei importieren | | | Autor: krsnic | Datum: 18.10.10 23:00 |
| Hallo zusammen,
ich versuche aus einer Textdatei Einträge in die MS SQL Tabelle zu übertragen. Das klappt, wenn ich selbst die Probedaten erstelle. Aus der Originaldatei geht das nicht, weil die ganze Zeile in die erste Spalte geht. Also:
Using sr As IO.StreamReader = _
IO.File.OpenText(OpenFileDialog1.FileName)
line = sr.ReadLine()
Do While line IsNot Nothing
Dim c As Char = CChar(vbTab)
Dim data() As String = line.Split(c)
If data.Length > 0 Then
If i = 0 Then
For Each item In data
dt.Columns.Add(New DataColumn())
Next item
i += 1
End If
Dim row As DataRow = dt.NewRow()
row.ItemArray = data
dt.Rows.Add(row)
End If
line = sr.ReadLine()
Loop
End Using Das Problem ist vermutlich im Teil:
Dim c As Char = CChar(vbTab)
Dim data() As String = line.Split(c)
Bitte um Hilfe!
Die Quelldatei hat diese Struktur:
00009740033501000N0309NYC01000000701000000960000001375NM + AETHOXYSKLEROL AMP 0,5% 5ST* 2 013905
00009800033501100N0309NYC01000000784000001075000001475NM + AETHOXYSKLEROL AMP 1% 5ST* 2 013906
00009970033501200N0309NYC01000000796000001090000001500NM + AETHOXYSKLEROL AMP 2% 5ST* 2 013907
00010050033501300N0309NYC01000000861000001180000001625NM + AETHOXYSKLEROL AMP 3% 5ST* 2 013908
00010630035501520N0309MER05000000141000000195000000275G A AGAFFIN ABFUEHRGEL TB 100ML 2 2 006274
00010860035501600N0309MER05000000461000000630000000905YM A AGAFFIN ABFUEHRGEL FL 500MLRE22 006274
00011460036507100N030902RIE000000464000000635000000910NM A-GEN-53 VAG-SUPP 12ST* 2 013689
00011750038002560N0309MAD01000000229000000315000000450NM AGIOLAX GRAN 100G * 2 111936
00011810038002600N0309MAD01000000464000000635000000910NM AGIOLAX GRAN 250G * 2 111936
00011980038002700N0309MAD01000001455000001965000002740NM AGIOLAX GRAN 1000G * 2 111936
00012060039006000N0309GEB01000000111000000150000000220GM + AGNUMENS TR 30ML 2 013880 | |
Re: Textdatei importieren | | | Autor: Manfred X | Datum: 19.10.10 06:42 |
| Hallo!
Du unterstellst, dass die einzelnen Felder in der
Textdatei durch "vbTab" getrennt sind.
Das ist offensichtlich nicht der Fall.
Das erste Feld geht offenbar bis zum Leerzeichen (Space),
das letzte Feld besteht aus den letzten 6/8 Zeichen in der Zeile
Was dazwischen liegt: Ich erkenne auf den ersten Blick keine
strenge Ordnung.
Das mußt Du wohl näher untersuchen.
Wie viele Felder sollen es denn sein??
(Trenne am besten die von Dir gewünschten Felder einmal durch
Kommas voneinander ab.)
MfG
Manfred
Beitrag wurde zuletzt am 19.10.10 um 06:55:50 editiert. | |
Re: Textdatei importieren | | | Autor: Christoph1972 | Datum: 19.10.10 06:51 |
| Hi,
ich habe leider gerade keine Zeit dir zu helfen. Was ich aber gleich gesehen habe das du nicht mit Option Strict = On programmierst. Das führt oft zu Fehlern, das würde ich mir abgewöhnen!
Using sr As IO.StreamReader = IO.File.OpenText(OpenFileDialog1.FileName)
line = sr.ReadLine()
Do While line IsNot Nothing
Dim c As Char = CChar(vbTab)
Dim data() As String = line.Split(c)
If data.Length > 0 Then
If i = 0 Then
For Each item In data
dt.Columns.Add(New DataColumn())
Next item
i += 1
End If
Dim row As DataRow = dt.NewRow()
row.ItemArray = data
dt.Rows.Add(row)
End If
line = sr.ReadLine()
Loop
End Using Gruß
Christoph
| |
Re: Textdatei importieren | | | Autor: krsnic | Datum: 19.10.10 22:32 |
| Sorry, mache ich in Zukunft! | |
Re: Textdatei importieren | | | Autor: krsnic | Datum: 19.10.10 22:36 |
| Ja, Manfred, du hast recht!
Vielen Dank! Jetzt habe ich den Quelltext einfach nach der Stringlänge eingeteilt und jetzt läuft es:
Using sr As IO.StreamReader = IO.File.OpenText(OpenFileDialog1.FileName)
line = sr.ReadLine()
Do While line IsNot Nothing
Dim n As Integer
' Dim c As Char = CChar(vbTab)
' Dim data() As String = line.Split(c)
Dim data(8) As String
data(0) = line.ToString.Substring(0, 60)
data(1) = line.ToString.Substring(61, 5)
data(2) = line.ToString.Substring(69, 25)
data(3) = line.ToString.Substring(95, 14)
etc... | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|