Hallo zusammen,
wie ich schon in meinem letzten Post gesagt habe bin ich noch ein blutiger Anfänger auf dem Gebiet VB(A).
Folgendes Problem.
Meine Eingabe ist beispielsweise "aaa;bbb;ggg;ccc;""Hallo zusammen;daraus würde ich gerne eine Spalte;machen!""", ";")
Die Suche nach dem Delimiter war nicht ganz so schwer und das habe ich glaube ich auch ganz gut hinbekommen.. nur wie mache ich aus diesem Beispiel eine Spalte, sprich wenn Anführungszeichen erscheinen darf das Programm keine Rücksicht mehr auf die Delimiter machen..
Hier mein Code:
Freue mich über jede Hilfe..
Viele Grüße
Mimas
wie ich schon in meinem letzten Post gesagt habe bin ich noch ein blutiger Anfänger auf dem Gebiet VB(A).
Folgendes Problem.
Meine Eingabe ist beispielsweise "aaa;bbb;ggg;ccc;""Hallo zusammen;daraus würde ich gerne eine Spalte;machen!""", ";")
Die Suche nach dem Delimiter war nicht ganz so schwer und das habe ich glaube ich auch ganz gut hinbekommen.. nur wie mache ich aus diesem Beispiel eine Spalte, sprich wenn Anführungszeichen erscheinen darf das Programm keine Rücksicht mehr auf die Delimiter machen..
Hier mein Code:
Code:
unction TextCleft(iSpaltenNr As Integer, sTextInhalt As String, sTrenner As String)
Dim idelimPos As Integer
Dim iSonderzeichen As Integer
Dim iSonderStartPos As Integer
Dim iSonderEndPos As Integer
Dim iStartPos As Integer
Dim iEndPos As Integer
Dim iZähler As Integer
Dim iEingabe As Integer
Dim sTrennZeichen As String
Dim sAnfzeichen As String
Dim sAusgabe As String
Dim sSpaltenInhalt As String
sAnfzeichen = """"
sTrennZeichen = sTrenner
iEingabe = iSpaltenNr
iStartPos = 1
iZähler = 0
sSpaltenInhalt = sTextInhalt
' wenn Anführungszeichen vorkommen, Inhalt bis zum nächsten als eine Spalte ausgeben
' deaktivierung
'finde gewünschte Spalte
Do While iZähler < iSpaltenNr - 1
'Position des ersten Delimiter bestimmen
idelimPos = InStr(iStartPos, sTextInhalt, sTrennZeichen)
'Position des ersten " bestimmen
iSonderzeichen = InStr(iStartPos, sTextInhalt, sAnfzeichen)
If idelimPos = sSonderzeichen - 1 Then
iSonderStartPos = iSonderzeichen
End If
'Überprüfen ob es sich um eine gültige Spalte handelt
If idelimPos > 0 Then
iZähler = iZähler + 1
iStartPos = idelimPos + 1
Else
MsgBox ("Ungültige Spalte!")
End
End If
Loop
If iStartPos = "" Then
iSonderStartPos = iSonderStartPos + 1
' neue Endposition bestimmen
iEndPos = InStr(iStartPos, sTextInhalt, sTrennZeichen)
iSonderEndPos = InStr(iSonderStartPos, sTextInhalt, sAnfzeichen)
sAusgabe = Mid(sTextInhalt, iSonderStartPos, iSonderEndPos - iSonderStartPos)
'MsgBox (iAusgabe)
If iEndPos > 0 Then
' einlesen der ersten bis zur vorletzten Spalte
sAusgabe = Mid(sTextInhalt, iStartPos, iEndPos - iStartPos)
Else
' einlesen der letzten Spalte
iEndPos = Len(sTextInhalt)
sAusgabe = Mid(sTextInhalt, iStartPos, iEndPos - iStartPos + 1)
End If
'Rückgabewert
TextCleft = sAusgabe
End Function
Freue mich über jede Hilfe..
Viele Grüße
Mimas