Power of attorney Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 Moin moin Wer kann mir helfen ich muss bestimmte Zeilen aus einer Datei auslesen und in eine Datenbank eintragen außerdem muss z.B. eine Zeile ausgelesen werden die Mit "Location:" beginnt, hier soll erst nach dem Doppelpunkt gelesen werden bzw. ausgegeben werden. Das mit der Datenbank is nich so das Problem aber die Dateiverstümmelung is der Horror!!!!!! Thx jezz scho ma! Hier werde mir hoffentlich geholfen!
Uncle Reaper Geschrieben 11. Juni 2002 Geschrieben 11. Juni 2002 Hi! Folgende Lösung müsste (zumindest im Borland Builder) laufen: TStringList *DateiInhalt = new TStringList; DateiInhalt->LoadFromFile("DATEINAME"); for(int j = 0; j < DateiInhalt->Count; j++) { if(DateiInhalt->Strings[j].SubString(0, 9) == "Location:") { // jetzt weiß ich nicht was Du machen willst. // Ich schieb den Rest des Strings einfach mal in 'ne andere Variable. AnsiString Rest = DateiInhalt->Strings[j].SubString(9, DateiInhalt->Strings[j].Length - 9); } } Hab ich jetzt allerdings nicht getestet... Fehler dürften allerdings nur bei den Indizes aufgetreten sein. Gruß, Uncle Reaper
Manitu Geschrieben 17. Juni 2002 Geschrieben 17. Juni 2002 Wenn die Datei nicht allzu groß ist und keine Perfomance notwendig geht das. Wenn die Datei nicht zu groß ist (< 200M) sollte man sie sich direkt in den Speicher mappen (nennt man Memory Mapped Files; WIndows: CreateFile, CreateFileMapping, MapViewOfFile, GetFileSize; Unix: open, mmap, fstat), ansonsten muß man die Datei in Scheiben zerlegen. Bei diesem Verfahren mapped das System dir die Datei direkt in den Speicher (bringt bis zu 3-Zehner Potenzen). Danach muß man dann den Speicher mit Hand zerlegen (Vorsicht: nicht rein schreiben-> geht direkt in die Datei). Also Zeilenende suchen mit strchr (Vorsicht mit \r\n) und Zeilenanfang prüfen. usw bis man hinten ist. Wenn man fündig geworden ist kann man mit strncpy oder memcpy den Bereich rauslesen. Ist aber nicht für C++ Freaks. :-) Geht aber mit jedem C/C++ Compiler.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden