AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suchen nach jahren in einer Db

Ein Thema von mimi · begonnen am 26. Mär 2006 · letzter Beitrag vom 2. Apr 2006
 
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Suchen nach jahren in einer Db

  Alt 26. Mär 2006, 17:11
Hallo,
ich habe mir die Freeware DB von Cd titeln runtergeladen.
jetzt habe ich eine index datei erstellt. die so aufgebaut ist:
DisId|Titel|Jahr|MusikRichtung

jetzt wollte ich folgendes machen:
ich möchte erfahren z.b. welche cd Titel im jahr 2004 erschienen sind also habe ich folgende procedure geschrieben:
Delphi-Quellcode:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
  Text1,Text2:TextFile;
  str,line,s,s2:String;
  p,i,z,index,l:Integer;
  test:TListItem;
begin
  ListBox2.Clear;
  Listview1.Clear;
  AssignFile(Text1,Edit5.Text);
  Reset(Text1);

  AssignFile(Text2,Edit1.Text);
  Reset(Text2);

  p:=-1; z:=0;
  Label9.Caption:='Los...';
  Label9.Update;
  Label9.Repaint;

  // Die richtige Position finden
  while not EOF(Text1) do begin
    if (c2 = True) or (cancel = True) then break;
    Application.ProcessMessages;
    ReadLN(text1,str);
    if Edit2.Text <> 'then begin // Disc-ID
      if pos(edit2.text,str) > 0 then begin
        s:=GetToken(str,'|',2); // Position auslesen
        break;
      end;
    end;

    index:=0; i:=0;
    if Edit4.Text <> 'then begin
      if pos(edit4.text,str) > 0 then begin
        index:=StrToInt(GetToken(str,'|',2));
        while not EOF(text2) do begin
          if (cancel = True) then break;
          Application.ProcessMessages;

          Readln(text2, line);
          inc(i);
          if i >=index then begin
          // if pos('DISCID',line) > 0 then
           // ShowMessage(line + #13 + str);

            if Pos(GetToken(str,'|',1),line) > 0 then begin
              ListView1.Items.Add;
              ListView1.Items[ListView1.items.count-1].Caption:=GetToken(line,'=',2);
            end;

            if (Pos('DTITLE',line) > 0) and (z = 0) then begin
              ListView1.Items[ListView1.items.count-1].SubItems.Add(GetToken(line,'=',2))
            end;

            if (Pos('DTITLE',line) > 0) and (z = 1)then ListView1.Items[ListView1.items.count-1].SubItems.Add(GetToken(line,'=',2));


            if Pos('DYEAR',line) > 0 then begin
              ListView1.Items[ListView1.items.count-1].SubItems.Add(GetToken(line,'=',2));
            end;
            if Pos('DGENRE',line) > 0 then begin
              ListView1.Items[ListView1.items.count-1].SubItems.Add(GetToken(line,'=',2));

              break;
            end;

{              if Pos('TTITLE',line) > 0 then begin
                str:=Copy(line,7,7);
                ListBox2.items.Add(str + ' ' + GetToken(line,'=',2));
              end;}

       // end;
          end;
        end;
      end;
    end; // if edit4 <> ''
  end;
  Label9.Caption:='gefunden...';
  Label9.Update;
  Label9.Repaint;
ich hoffe da blick jemmand durch:
Ich öffne zuerst die index datei in der suche ich die angaben jahres zahle habe ich die suche ich in der zweiten datei(in der eigentlichen db) die angeben position rauß. Und sobalt ich die habe füge ich die daten der ListView hinzu. problem ist jetzt er fügt nur ein eintrag hinzu. schreibe ich jetzt bei DJahr ein ShowMessage hin sehe ich das dort die falschen jahre angezeigt werden.

Ich hoffe einer kann mir ein kleinen tip geben was ich falsch gemacht habe. wahrscheinlich nur ein kleiner gedanken fehler. Frag mich aber nicht welcher.
Vielen dank im vorauß !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz