----- Original Message -----
From: "Jutta Kavalier" <[EMAIL PROTECTED]>
To: "ASP Diskussionsliste fuer Anfaenger" <[EMAIL PROTECTED]>
Sent: Tuesday, June 18, 2002 1:01 PM
Subject: [aspdebeginners] Einlesen einer Textdatei


> Hallo,
>
> ich weiss auch nicht - ist es zu heiss zum Denken?
> Ich habe eine Textdatei, die ich in eine Datenbank bringen muss. Die
> "Datens�tze" in der Datei sind mit ** getrennt. Jeder dieser Bl�cke
enth�lt
> nochmals Daten, die in diesem Schema aufgebaut sind:
> **
> <Bezeichnung>Inhaltstext
> <Noch eine Bezeichnung>noch ein Inhaltstext
> ...
> **
> ...n�chster Datensatz

So w�rde ich es angehen

1. Split am ** gibt einen Array mit einem Datensatz pro Feldvariable

2. Car(Cdr(datensatz, "<"), ">") gibt die erste Feldbeschreibung

3.  car(cdr(datensatz, ">"), "<") gibt den ersten Inhalt

4.  i = instr(mid(datensatz, 2), "<")) - wenn 0 und die L�nge gr��er Null,
dann haben wir den letzten datensatz. Also in der Feldvariable von oben
speichern. Und damit Schritt 3 nicht zwickt beim letzten Datensatz ein "<"
hinten dranh�ngen.

    ansonsten so ca
   datensatz = mid(datensatz, i+1) gibt alle weiteren Felder

   Dann Schleifenende zur�ck zu 2.


Car und Cdr kommen eigentlich aus Lisp, wo sie Listenelemente extrahieren.
Weil man die in der Textbearbeitung so oft brauchen kann, habe ich mir die
als VBS-Funktionen geschrieben, die einen Text bis zum angegebenen
Trennzeichen oder den Text ab dem angegebenen Trennzeichen rausholen.



'
****************************************************************************
****
' *
' * String Funktionen
' *

Function car(sString, sDelim)
  Dim i
  i = InStr(1, sString, sDelim, vbTextCompare)
  If i = 0 Then
    car = ""
  Else
    car = Trim(Left(sString, max(0, i - 1)))
  End If
End Function

Function max(a, b)
  If a > b Then max = a Else max = b
End Function

Function Min(a, b)
  If a < b Then Min = a Else Min = b
End Function

Function cdr(sString, sDelim)
  Dim i
  i = InStr(1, sString, sDelim, vbTextCompare)
  If i = 0 Then
    cdr = ""
  Else
    cdr = Trim(Mid(sString, max(0, i + Len(sDelim))))
  End If
End Function



--

Viele Gr��e
Hubert Daubmeier






| Oft Gefragtes: http://www.aspgerman.com/aspgerman/faq/
| [aspdebeginners] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdebeginners/ = Listenarchiv
| Sie knnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdebeginners.asp

Antwort per Email an