AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Selbstprogrammierung eines Vokabeltrainers
Thema durchsuchen
Ansicht
Themen-Optionen

Selbstprogrammierung eines Vokabeltrainers

Ein Thema von Soph6297 · begonnen am 27. Mai 2014 · letzter Beitrag vom 21. Jun 2014
Antwort Antwort
Seite 2 von 3     12 3      
Soph6297

Registriert seit: 27. Mai 2014
13 Beiträge
 
#1

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 14:48
Würdest du mal kurz erläutern, was du unter "typisierte Datei" vor dem Lesen der verlinkten Anleitung und dann nochmal kurz, was du nach dem Lesen des Tutorials darunter verstehst? Denn mit einer Listbox eine typisierte Datei laden zu wollen erscheint mir doch etwas arg naiv. Wenn du dem Link folgst, erhältst du eine umfassende Einführung in typisierte Dateien. Dein gezeigter Code ist auf keinen Fall bereit, eine typisierte Datei entgegenzunehmen, denn es fehlt – genau, du hast's erfaßt! – der Record.

Da fällt mir noch ein: Wieso schreibst du nicht ein Programm auf der Basis dessen, was ihr in der Schule gelernt habt? Man erwartet doch sicher nicht von dir, Programmiertechniken einzusetzen, die man dir nicht zuvor beigebracht hat, oder?
Ich arbeite, wie Dejan Vu erkannt hat, mit einer Textdatei. Wir hatten die Auswahl zwischen einer typisierten Datei und einer Textdatei; ich habe mich allerdings für eine Textdatei entschieden, da ich damit besser klar komme.
Es wird zwar von uns erwartet uns bereits bekanntes Wissen anzuwenden, allerdings auch, neues Wissen mit einzubinden, was wir vorher noch nicht behandelt haben.

@ Dejan Vu:
Danke für die bisherige Hilfe;
Zitat:
'FJahr' ist ein privates Feld.
Mh, nein tut mir leid. Ich habe leider keine Idee, wo ich ein privates Feld deklariere; nach implementation?


Also hätte ich jetzt die Möglichkeit entweder mit pos und copy zu arbeiten oder mit einer CSV-Datei (von der ich leider noch nie etwas gehört habe)? Ebenso wenig habe ich Erfahrung mit TString aus.
Lässt es sich denn empfehlen mit Pos und Copy zu arbeiten?

Danke!
MfG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#2

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 14:58
Ein privates Feld deklariert man im private-Abschnitt der Klasse, zu der es gehören soll. In üblicher Nomenklatur stellt man dem Bezeichner ein F voran. Beispiel:
Delphi-Quellcode:
type
  TDings = class
  private
    FIntwert: integer;
  end;
FIntwert ist somit ein privates Feld vom Typ integer der Klasse TDings. Zu den TStrings: da Du eine Listbox verwendest, hast Du diese TStrings bereits verfügbar, nämlich in deren Items-Eigenschaft.
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
Benutzerbild von p80286
p80286

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

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 15:11
Also hätte ich jetzt die Möglichkeit entweder mit pos und copy zu arbeiten oder mit einer CSV-Datei (von der ich leider noch nie etwas gehört habe)? Ebenso wenig habe ich Erfahrung mit TString aus.
Lässt es sich denn empfehlen mit Pos und Copy zu arbeiten?
Falsche Fragestellung. Mit pos() und Copy() und ggf. Delete() machst Du zu Fuß das, was schon als Funktionalität in Tstringlist.DelimitedText steckt.
Wenn Du den Fußweg nicht beherschst, bist Du bei einem anderen Compiler/Sprache die den "DelimitedText" nicht bietet verloren.

Was CSV angeht hier gibt's einen Einstieg.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#4

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 15:28
Für gerade einmal 2 Werte je Datensatz finde ich CSV eher kontraproduktiv. Was habt Ihr eigentlich alle gegen Namens-/Wertepaare? Viel einfacher geht es doch kaum noch.
Delphi-Quellcode:
procedure TFormTest.btnTestClick(Sender: TObject);
var
  Items: TStrings; //als Ersatz für die Items der Listbox
  i: integer;
  AName, AValue: string;
begin
  Items := TStringlist.Create;
  try
    //wird ja normalerweise aus der Datei ausgelesen
    Items.Add('Dings=Bums');
    Items.Add('Hau=Ruck');
    Items.Add('Blabb=Blubb');
    Items.Add('Die Frage nach dem Leben, dem Universum und einfach Allem=42');
    for i := 0 to Items.Count - 1 do
      begin
        AName := Items.Names[i];
        AValue := Items.ValueFromIndex[i];
        ShowMessage('Frage: ' + AName + sLineBreak + 'Antwort: ' + AValue);
      end;
  finally
    Items.Free;
  end;
end;
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
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 16:07
Nur um das nochmal aufzugreifen und da ich vermute, das der TE als Anfänger evtl. Verständnisschwierigkeiten hat und evtl. in der Schule andere Begrifflichkeiten verwendet werden:

a) In Klassen nennt man was sonst so unter dem Namen Variablen läuft auch Felder, genauso wie man Prozeduren/Funktionen dort Methoden nennt. "Private" Felder heißt dann in dem Zusammenhang noch, dass diese Felder/Variablen nur innerhalb der Klasse sichtbar sind, d.h. benutzt werden können. Wie das im Code aussieht hat DeddyH ja schon gezeigt.

b) Und als Ergänzung zu #12 von DeddyH, bzw. allgemein, ist es vllt. auch hilfreich zu zeigen, wie der Inhalt der Textdatei dann aussehen könnte:

Code:
Dings=Bums
Hau=Ruck
Blabb=Blubb
Die Frage nach dem Leben, dem Universum und einfach Allem=42
bzw. auf die Aufgabe bezogen

Code:
1714=Kartoffelkrieg
1896=1. olymp. Spiele der Neuzeit
2014=Deutschland wird Fußballweltmeister
usw.
Ralph
  Mit Zitat antworten Zitat
Soph6297

Registriert seit: 27. Mai 2014
13 Beiträge
 
#6

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 18:28
Tut mir leid, ich versuche nur zu verstehen, was genau ich programmiere; da frage ich vielleicht zu viel /:

Zitat:
2. Wenn du ein Array[1..2] hast und du rufst ein Item daraus ab, dessen Index kleiner 1 oder dessen Index größer 2 ist, erzeugt dies einen Fehler, denn es existiert nur der Index 1 und der Index 2. Genauso ist das z.B. bei Stringlisten: Wenn du 15 Items darin hast (0..14] und du rufst z.B: das Item mit dem Index 15 auf, das gar nicht existiert, erzeugst du denselben Fehler: Listenindex übersteigt das Maximum.
Ok, das versteh ich!

Ich hab versucht auf den Index der ListBox zuzugreifen:

Delphi-Quellcode:
procedure TForm1.EreignisButtonClick(Sender: TObject);
var zufall:Integer;
     Ereignis:String;


begin

ListBox1.Items.LoadFromFile('TextEreignis.txt');

randomize;
ListBox1.Items.Strings[2];
Trennung(ListBox1.Items.Strings[Zufall], FJahr, Ereignis);
EreignisPanel.Caption:=Ereignis;




end;
ListBox1.Items.Strings[2]; Allerdings wird mir immer noch angezeigt, dass ich das Maximum überschreite.
Müsste ich dann ein Array bei den var einfügen, zB Ereignis:Array [1..3] of String ?
"Der Computer löst Probleme, die man ohne ihn nicht hätte."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.868 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 18:31
Wieviele Zeilen hat die Textdatei?
Das randomize ist hier falsch. Es sorgt dafür, das die Fragen immer iin der selben Reihenfolge gewählt werden.
Markus Kinzler
  Mit Zitat antworten Zitat
Soph6297

Registriert seit: 27. Mai 2014
13 Beiträge
 
#8

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 18:33
Momentan hat die Textdatei 3 Zeilen, es soll aber später möglich sein, die Textdatei um Zeilen zu erweitern.

Oh, ok.
Aber wenn das randomize dort falsch ist, wo muss ich es dann hinschreiben, damit die Fragen/Antworten aus der Textdatei zufällig gewählt werden?
"Der Computer löst Probleme, die man ohne ihn nicht hätte."
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 18:34
Was für einen Wert hat denn Zufall ?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Soph6297

Registriert seit: 27. Mai 2014
13 Beiträge
 
#10

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 17. Jun 2014, 18:36
Einen Integer Wert, wenn du das meinst?

Delphi-Quellcode:
var zufall:Integer;
     Ereignis:String;


begin

ListBox1.Items.LoadFromFile('TextEreignis.txt');

randomize;
ListBox1.Items.Strings[2];
Trennung(ListBox1.Items.Strings[Zufall], FJahr, Ereignis);
EreignisPanel.Caption:=Ereignis;
"Der Computer löst Probleme, die man ohne ihn nicht hätte."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz