Logfile Inahlt aus Textdatei in Records splitten und in SQL - DB pushen



  • Hallo Gurus,

    habe einen SQL Server auf den ich via ODBC auf eine SQLD DB mit Borland Builder 4
    zugreifen möchte, die Verbindungen und Datemodule sind fertig.

    Nun muss ich einen Weg finden die Textdatei die folgendermassen aufgebaut ist:

    192.168.32.14 - - [13/Sep/2005:10:17:40 +0200] "GET www.alternate.de:80 /pix/teaser/harrypotter_9-2005.jpg HTTP/1.0" 304 0 "http://www.alternate.de/html/index.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

    192.168.37.26 - - [13/Sep/2005:10:17:48 +0200] "GET rcm-de.amazon.de:80 /e/cm HTTP/1.0" 200 3979 "http://www.it-administrator.de/lexikon/odi.html" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

    192.168.39.26 - - [13/Sep/2005:10:17:53 +0200] "GET www.brunen-it-shop.de:80 /shop/images/icons/infopo.gif HTTP/1.0" 200 168 "http://www.brunen-it-shop.de/shop/product_info.php?cPath=128_176&products_id=834&osCsid=60363f071207310fc19f952c541d9320" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"

    kurz gessagt, benötige ich aus jedem Datensatz die IP Adresse, Datum, Uhrzeit und die URL, diese Spalten habe ich in der SQL DB schon angelegt plus einem Auto ID Feld versteht sich von selbst.

    Nun möchte ich in meinem Borland Prog einen Button zum einlesen der Texdatei in die DB erstellen... BITTE HILFE



  • Lade die Textdatei in eine TStringList, dort kannst du auf jede Zeile als einzelnen String zugreifen und diesen mit AnsiString-Methoden wie SubString(), Pos() usw. zerlegen.



  • Hallo, vielen Dank für deine schnelle Hilfe,

    ich muss aber zusätzlich noch auf jeden einzelnen Wert zugreifen können, eine Zeile allein reicht leider nicht aus, ich werde mal sehen ob ich es so realisieren kann.

    Noch ein anderes Problem,

    [13/Sep/2005:10:17:48

    wie kann ich das hier gezeigt Datumsformat 13/Sep/2005 in ein Datumsfeld schreiben bzw. konvertieren?



  • Hallo

    Die Zeilen must du selber auseinandernehmen, dazu die genannten AnsiString-Methoden.

    Wenn das Eingangsdatumsformat immer das gleiche ist einfach nach den '/' suchen und Tag, Monat und Jahr splitten. Das kannst du dann zu deinen Datenbank-Format wieder zusammensetzen.

    bis bald
    akari


Log in to reply