Hallo, habe ein Programm in Borland C++ Builder geschrieben, welches aus einer .txt Datei Wörter auf Deutsch sucht und diese dann in einer Excel Tabelle sucht, um das Englische Wort zu finden. Beide speichere ich anschliessend in einem AnsiString, welchen ich dann am Ende des Programms, wieder in eine .txt Datei speicher. Allerdings dauert der Ablauf des Programms ca. 30min. Es sind 2573 Excel Einträge und ca. 300 Deutsche Wörter in der .txt Datei, nach denen ich suchen muss. Das durchgehen der Excel Tabelle verschlingt am meisten Zeit, habe ich so das Gefühl. Jemand ne Idee, wie ich mein Programm verschnellern kann??? Gruss und Dank, fubu.
die exceltabelle einmal in ein array einlesen und dann selbst darin suchen ist sicherlich um einiges schneller. da es sicherlich nicht so bald 100k einträge werden reicht dieser ansatz vorerst einmal ;) lgherby
hmmm, wie soll so ein array aussehen??? char array [x] [y]; das wird wohl nicht funktionieren!
Wozu die Excel Tabelle ?? Oder muss der Text auch für "Humans" manuell zugreifbar sein ??
fubu1000 wrote: > hmmm, > wie soll so ein array aussehen??? z.B. für 100 Worte: char *Worte[100]; Gespeichert werden Pointer auf die Worte. Die legst du mit NUL-Zeichen getrennt in einen Puffer und setzt jeweils ein Pointerarray-Element auf den ersten Buchstaben des Wortes. Wenn du das so aufbaust, kannst du die Excel-Tabelle zu Beginn einlesen, indem du - 1 Wort an die nächste freie Position im Puffer liest, - das NUL-Zeichen anfügst, - den Pointer auf das Wort setzt, - den Wortindex um eins hochzählst und die ganze Prozedur wiederholst, bis entweder kein Pointer mehr verfügbar ist, der Puffer voll ist, oder die Excel-Tabelle vollständig eingelesen ist. Wortarray und Puffer sollten also groß genug sein... Gesamter Speicherbedarf: <gesamtlänge aller worte> + <anzahl worte> * (1 + sizeof(char *))
schönen dank an alle, habe die excel jetzt in strings gespeichert und jetzt läuft alles unter einer min. gruss und dank nochmal!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.