AGB  ·  Datenschutz  ·  Impressum  







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

Datenbank durchsuchen...

Ein Thema von Thargeon · begonnen am 1. Dez 2009 · letzter Beitrag vom 1. Dez 2009
Antwort Antwort
Thargeon

Registriert seit: 29. Nov 2009
6 Beiträge
 
#1

Datenbank durchsuchen...

  Alt 1. Dez 2009, 00:34
Datenbank: ? • Zugriff über: Delphi 7 (assignfile)
Hallo,

habe schon ein paar Threads zu dem Thema gefunden, jedoch hat keines mein Problem beschrieben.

Zunächst mein Programm:

Ich arbeite mit "record" und "assignfile".
Es hat 3x4 Edit-Felder. Diese 3x4 Edit-Felder sollen den Namen,Vornamen, Straße, Tel. Nr ausgeben/schreiben.
Die ersten 4 Edit-Felder erstellen/schreiben solch eine DB, die nächsten 4 geben den Inhalt der erstellten DB aus. Ich habe dafür 2 Buttons, um in der DB eine "filepos(g)" vor bzw. zurück zu gehen.
Nun das Problem: Mit den nächsten 4 Feldern möchte ich eine Suche einbauen.

Mal als Beispiel:

Position 1 (der DB) = Mustermann; Max; Müllerstraße 1; 1234/567890
Position 2 = Müller; Lars; Südallee 5; 0987/654321
Position ...
Position 10 = Abel; Larissa; Bla 43; 1252/129315

So, nun möchte ich z.B. in das "Such-Edit-Feld", dass für die Straße zuständig ist "Südallee 5" eingeben und nach einem Button.Click soll die komplette Position 2 mit allen Angaben angezeigt werden.

Ist dies irgendwie möglich ??

Danke schonmal für die Hilfe

Mfg
Thargeon
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 00:48
Ich übersetze das ganze mal, damit es verständlich wird. Du hast einen Record mit den Feldern Namen,Vornamen, Straße und Telelefonnummer. Und jetzt rate ich mal, weil du dich darüber ausschweigst, du hast ein Array in das die Records aus der Datei geladen werden. Jetzt willst du nach einem bestimmten Datensatz suchen.

Dann geh das Array in einer Schleife durch und überprüfe das entsprechende Feld des Records, ob es mit dem Suchbegriff übereinstimmt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Thargeon

Registriert seit: 29. Nov 2009
6 Beiträge
 
#3

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 00:59
Deine Übersetzung war zunächst richtig Aber ich erwähne kein Array, da keines vorhanden ist...

Hier mal ein kleiner Auszug vom "Vorwärtslesen"

Delphi-Quellcode:
if not eof(f) then read(f,P)
else
  begin
     Label1.Enabled:=true;
     Label1.Caption:= 'Dateiende erreicht!';
  end;

  begin
  Edit1.Text:=P.Name;
  Edit2.Text:=P.VName;
  Edit3.text:=P.Straße;
  Edit4.Text:=P.TelNr;
  Edit6.Text:=IntToStr(FilePos(f));
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 01:06
Zitat von Thargeon:
Deine Übersetzung war zunächst richtig Aber ich erwähne kein Array, da keines vorhanden ist...
Dann solltest du uns mal mitteilen, wie du die Datensätze verwaltest oder hast du für jeden Datensatz eine Datei? Zeig doch mal wie du die Datensätze speicherst, wie du sie lädst und wie du sie dann im Programm verwaltest.

Warum zur Hölle muss man immer um Informationen und Quellcode betteln? Da verliert man irgendwie die Lust zu helfen.*

*) Das bezog sich jetzt nicht nur auf dich, sondern war eine allgemeine Feststellung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Thargeon

Registriert seit: 29. Nov 2009
6 Beiträge
 
#5

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 01:22
Delphi-Quellcode:
type
  TP = Record
    Name : String[20];
    VName : String[20];
    Straße : String;
    TelNr : Integer;
  end;

...

var //globale Var
  Form1: TForm1;
  P : TP;
  f : File of TP;


Button um die Datei zu öffnen + NUR auszulesen:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
  AssignFile(f,edit5.text); // edit5.text:= Dateipfad
  Reset(f);
end;

Button um die Datei zu öffnen + nur zu schreiben:

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin

assignfile (f,Edit5.Text) ;
rewrite(f)
end;

Button um die Datei zu schreiben:

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin

P.Name:=Edit8.Text;
P.VName:=Edit9.Text;
P.Straße:= Edit10.Text;
P.TelNr:=IntToStr(Edit11.Text);

begin
write (f,P);
end;


Button um die Datei zu schließen:

Delphi-Quellcode:
 If FileExists(edit5.text) then
  begin
  CloseFile(f);;
  end;


Das sind so die Funktionen des Programms...der Button zum "Rückwärtslesen" ist im Prinzip das gleiche wie Vorwärtslesen, nur dass ich dabei die filepos-2 nehme um in der DB auf den Eintrag davor zu kommen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 01:28
Du liest also jedes mal aus der Datei, wenn du den nächsten Datensatz anzeigst. OK. Dann bleibt das Prinziup doch das gleiche, nur eben ohne Array.

Delphi-Quellcode:
while not eof(f) do
begin
  if P.VName = 'Heinzthen
  begin
    // Datensatz ausgeben
  end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Datenbank durchsuchen...

  Alt 1. Dez 2009, 10:55
Zitat von Thargeon:
Delphi-Quellcode:
type
  TP = Record
    Name : String[20];
    VName : String[20];
    Straße : String;
    TelNr : Integer;
  end;

...


Button um die Datei zu öffnen + nur zu schreiben:

Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
begin

assignfile (f,Edit5.Text) ;
rewrite(f)
end;
"Straße" halte ich wegen des ß für nicht so gelungen. (auch mit 16Bit Charakters und UTF8!)
Über die 20 Stellen für Name und Vorname kann man streiten, aber der Straße würde ich auch eine Beschränkung verpassen ([80]?)

mit "rewrite(f)" ist die Datei leer! (oder überschrieben)

Und überhaupt für assign eine Button, für read einen Button, für close einen Button, das ist nicht so toll!
lieber so:
Delphi-Quellcode:
assignfile(f,meinedatei);
reset(f);
seek(f.....);
read(f,...);
close(f);
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:38 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