Announcement

Collapse
No announcement yet.

SUche in Datei!!!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SUche in Datei!!!

    Guten morgen an alle ich habe mich gerade registriert hoffe dass ich hier Hilfe finden würde bin gerade bisschen am verzweifeln....

    Ich schreibe mit C++ Bilder 6 gerade ein Programm zur Verwaltung der verschiedensten Kundendaten...

    Die Dasteien die wir zugeschickt bekommen sehen volgendermaßen aus:
    [Kundendaten]
    Name: ......
    Vorname: .......
    Strasse: .......
    usw.....
    bis zum nechsten abschnitt der wieder mit [Kundendaten anfängt].

    Mein Problemm ist dass ich erstmal diese Datei in ein TMemo hochlade und es dort anzeigen lasse und hinterher darin suchen will.
    Man soll ein Schlüsselwert eingeben können wie zum Beispiel den Namen des Kunden und dann alle zugehörigen Daten von dem Kunden in einem anderen TMemo fenster angezeigt bekommen...

    Mein Code hierfür sieht folgendermaßen aus:

    for (int i = 1; i<=mShow->Lines->Count; i++)
    {
    int k = mShow->Lines->Count;
    String j = mShow->Lines->Strings[i];
    String Daten;
    int iLaenge;
    iLaenge = j.Length();
    if(j.Pos(edtKeyword->Text) != 0)
    {
    for (int i = k; i != 0; i--)
    {
    Daten = mShow->Lines->GetText();
    Daten = Daten.SubString(iLaenge,']');
    mSearch->Lines->Text = Daten;
    }
    }


    }

    Der Substring schneidet auch aus wie er es auch machen soll nur nicht dass was ich will daher hoffe ich einer von euch kann mir helfen komme eimfach nicht weiter.....

  • #2
    Sehe das als nicht so günstiges Vorgehen an. Besser ist es, die Datei beim einlesen gleich richtig zu verarbeiten, also

    eine Struktur der Kundendaten anlegen
    Datei zum lesen öffnen
    1 Sind Kundendaten da,
    dynamisch neuen Kunden anlegen
    Daten in diese Struktur lesen
    weiter bei 1

    So hast du dann alle Daten in einer dynamischen Struktur und kann ohne Probleme diese durchsuchen, ausen oder sonstewas mit machen. Eine solche Strukur wird mittel "struct" und dem Template "vector" aus der STL recht schnell realisiert.

    Wenn du doch bei deinem Vorgehen bleiben willst, kannst du auch dei Daten in eine TStringlist einlesen. Da erzeugt etwas Unabhängigkeit von dem TMemo. Funktionieren tut das ganz genauso.

    Und klar das dein Code nicht so ganz funktioniert:

    iLänge enthält immer die Länge der geraden aktuellen Zeile, mit

    Daten = mShow->Lines->GetText();
    Daten = Daten.SubString(iLaenge,']');
    holst du gedoch den gesamten Text und liest dann ab der Länge der aktuellen Zeile?? Wurde eventuell dann gehen, wenn du die Länge kumulierst (auch nur dann ,wenn der int dazu nicht in jeder Schleife neu angelegt wird).

    Auch ist mir nicht ganz klar wie die Logik funktionieren sollte:

    Du durchsuchst alle Zeilen
    Je Zeile schaust du, ob der Suchbegriff drin ist
    Dann nochmal eine Schleife über alle Zeilen?? Wozu wenn gar nicht benutzt??
    Wenn ja nimm den ganzen Text
    Weise DATEN den Teil von ??? bis ']' zu?? SubString erwartet andere Parameter
    Schau dazu nochmal in die Hilfe.

    Ev hilft

    http://www.marquardtnet.info/cecke/q...quicky_01.html

    oder

    http://www.marquardtnet.info/cecke/q...quicky_02.html

    hinsichtlich der Stringverarbeitung

    Dann wäre noch zu sagen:

    Falsches Forum -> nutze C++Builderforum, hier für die Borland Versionen VOR dem C++Builder
    Variablen am Anfang des Codeblockes definieren nicht mittendrin und schon gar nicht andaueren neu in Schleifen. Sinnvoll definieren

    for (int i = 1; i<=mShow->Lines->Count; i++)
    {
    int k = mShow->Lines->Count;

    ????

    besser
    int k = mShow->Lines->Count;
    for (int i = 1; i<=k; i++)
    {

    k......
    Für Laufvariablen UNTERSCHEIDLICHE verwenden, wenn die Schleifen verschachtelt sind, onst stolperst du über kurz oder lang.
    Zuletzt editiert von Christian Marquardt; 19.02.2007, 11:22.
    Christian

    Comment

    Working...
    X