AGB  ·  Datenschutz  ·  Impressum  







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

aufrufen von Record

Ein Thema von foerster7892 · begonnen am 30. Nov 2008 · letzter Beitrag vom 30. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#1

aufrufen von Record

  Alt 30. Nov 2008, 10:53
Ich würde gerne nen record nach der Speicherung wieder aufrufen und die einzelnen Unterpunkte bearbeiten(Buchname...)


Delphi-Quellcode:
Type TBuch=Record
           Buchname: String[60];
           Autor: String[40];
           Verlag: String[40];
           ISBN: String[13];
           end;
Delphi-Quellcode:
AssignFile(Buchdatei, 'C:\Users\user\Documents\Bücher\' + Buch.Buchname + '.dat');
rewrite(Buchdatei);
write(Buchdatei, Buch);
closefile(Buchdatei);
showmessage('Buch wurde eingetragen');
so speicher ich den

und jetzt will ich ihn halt wieder aufrufen und alles nach belieben bearbeiten.

Danke im Vorraus für Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: aufrufen von Record

  Alt 30. Nov 2008, 10:55
In ganz kurzer Form ohne Fehlerbehandlungen:
Delphi-Quellcode:
AssignFile(Buchdatei, 'C:\Users\user\Documents\Bücher\' + Buch.Buchname + '.dat');
reset(Buchdatei);
read(Buchdatei, Buch);
closefile(Buchdatei);
showmessage('Buch wurde ausgelesen');
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#3

Re: aufrufen von Record

  Alt 30. Nov 2008, 11:00
und dann kann ich da einfach wieder auf TBuch zugreifen (is ja keine einfache Variable)?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: aufrufen von Record

  Alt 30. Nov 2008, 11:06
Versuch' s
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#5

Re: aufrufen von Record

  Alt 30. Nov 2008, 12:34
Das Problem ist ja das ich mehrere Bücher anlege und die Buchnamen die gleichzeitig auch die Dateinamen sind (Harry Potter.dat)
Diese Speichere ich nochmal extra als .dat (in dieser werden die Dateinamen immer ergänzt) so kann ich Später die Bücher wieder aufrufen

aber wie kann ich dann noch auf Buchname und Verlag zugreifen und die ausgeben????
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: aufrufen von Record

  Alt 30. Nov 2008, 12:43
Delphi-Quellcode:
AssignFile(Buchdatei, 'C:\Users\user\Documents\Bücher\' + Buch.Buchname + '.dat');
reset(Buchdatei);
read(Buchdatei, Buch);
closefile(Buchdatei);
showmessage(Buch.Autor);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#7

Re: aufrufen von Record

  Alt 30. Nov 2008, 13:11
Delphi-Quellcode:
begin
  if (RadioGroup1.ItemIndex=0) then
  Suche := 'Buchname';
  if (RadioGroup1.ItemIndex=1) then
  Suche := 'Autor';
  if (RadioGroup1.ItemIndex=2) then
  Suche := 'Verlag';
  if (RadioGroup1.ItemIndex=3) then
  Suche := 'ISBN';

  if (FileExists('C:\Users\user\Documents\Bücher\111Buchtitel111.dat')) then
  begin
    AssignFile(Buecher, 'C:\Users\user\Documents\Bücher\111Buchtitel111.dat');
    reset(Buecher);
    Groesse:=filesize(Buecher);
    For AlleBuecher := 1 to Groesse do
    begin
      read(Buecher, x);
      AssignFile(Buchdatei, 'C:\Users\user\Documents\Bücher\' + x + '.dat');
      reset(Buchdatei);
      read(Buchdatei, Buch.Suche);//<---das Funzt nciht da suche kein Element von TBuch ist aber wenn ich zum Test einfach mal Buch.Autor hinpacke gehts auch nicht (Buch is angeblich nihct mit shortstring kompatibel)
      AttributSuche:=Inputbox('Suche','Suchbegriff eingeben','');
      if (AttributSuche=Buch.Suche) then
      Form3.RadioGroup3.Items.Add(x);//<--- und hier werden keine Items in der RadioGroup hinzugefügt die ich dann auswählen könnte(ka why)



      closefile(Buchdatei);



HELP
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: aufrufen von Record

  Alt 30. Nov 2008, 13:15
Ich finde Deine Logik ein wenig komisch. Wieso schreibst Du nicht alle Bücher in eine Datei? Dann könntest Du sie in ein dynamisches Array laden und damit dann hantieren. Und Du musst den Record schon im Ganzen einlesen und dann erst auf die Felder zugreifen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
foerster7892

Registriert seit: 10. Okt 2007
Ort: Brieskow-Finkenheerd
181 Beiträge
 
#9

Re: aufrufen von Record

  Alt 30. Nov 2008, 13:39
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
forcedirectories('C:\Users\user\Documents\Bücher');
AssignFile(Buecher, 'C:\Users\user\Documents\Bücher\111Buchtitel111.dat');
reset(Buecher);
Groesse:=filesize(Buecher);
for AlleBuecher := 1 to Groesse do
begin
  read(Buecher, x);
  Form3.RadioGroup2.Items.Add(x);//<---Was isn an dem Befehl falsch (eigl müsste ich doch da als wenn ich aufm Formular an der RadioGroup items dazugegeben hätte es haben müssen oder???)
end;
closefile(Buecher)
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
  if (RadioGroup1.ItemIndex=0) then
  Suche := 'Buchname';
  if (RadioGroup1.ItemIndex=1) then
  Suche := 'Autor';
  if (RadioGroup1.ItemIndex=2) then
  Suche := 'Verlag';
  if (RadioGroup1.ItemIndex=3) then
  Suche := 'ISBN';

if (FileExists('C:\Users\user\Documents\Bücher\111Buchtitel111.dat')) then
  begin
    AssignFile(Buecher, 'C:\Users\user\Documents\Bücher\111Buchtitel111.dat');
    reset(Buecher);
    Groesse:=filesize(Buecher);
    AttributSuche:=Inputbox('Suche','Suchbegriff eingeben','');
    For AlleBuecher := 1 to Groesse do
    begin
      read(Buecher, x);
      AssignFile(Buchdatei, 'C:\Users\user\Documents\Bücher\' + x + '.dat');
      reset(Buchdatei);
      read(Buchdatei, Buch);
      if Suche='Buchnamethen
      begin
        if (AttributSuche=Buch.Buchname) then
        Form3.RadioGroup3.Items.Add(x);
        closefile(Buchdatei);
        Funde:=Funde+1;
      end;
      if Suche='Autorthen
      begin
        if (AttributSuche=Buch.Autor) then
        Form3.RadioGroup3.Items.Add(x);
        closefile(Buchdatei);
        Funde:=Funde+1;
      end;
      if Suche='Verlagthen
      begin
        if (AttributSuche=Buch.Verlag) then
        Form3.RadioGroup3.Items.Add(x);
        closefile(Buchdatei);
        Funde:=Funde+1;
      end;
      if Suche='ISBNthen
      begin
        if (AttributSuche=Buch.ISBN) then
        Form3.RadioGroup3.Items.Add(x);
        closefile(Buchdatei);
        Funde:=Funde+1;
      end;
    end;
  end;
  showmessage('Es wurden ' +IntToStr(Funde)+ ' Bücher gefunden');
end;

end.
So dürfte es eigl funzen aber er Zeigt immer an das 0 Bücher gefunden wurden (Wenn ich Verlag wähle und Carlsen eingebe müsste er mindestens eins Finden)
Wissen sie/Weißt du was hier nicht stimmt????
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: aufrufen von Record

  Alt 30. Nov 2008, 13:40
Verrätst Du mir mal, was x eigentlich ist?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:52 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