Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wieder Funktionen, ich lerne es nie ;( (https://www.delphipraxis.net/20083-wieder-funktionen-ich-lerne-es-nie-%3B.html)

Teddyman 13. Apr 2004 13:58


Wieder Funktionen, ich lerne es nie ;(
 
Hallo, da ich wirklich Anfänger bin, fällt ir einiges schwer. Ich bitte um euer Verständnis.
Und ich finde die Hilfe hier sehr gut, Danke.

Habe folgendes Problem:
Ich will vier Seriennnummern eingeben ANS1 bis ANS4 und diese in eine Textdatei speichern.
Wie kann ich den unten stehenden Code durch evtl. einer Funktion kürzen?
Danke.


Delphi-Quellcode:
//Seriennummer ANS1 eingeben
procedure TForm1.Edit2Exit(Sender: TObject);
var Text_Datei: TextFile;
    s:String;
begin
 AssignFile (Text_Datei, 'C:\Messwerte.txt');
 Append(Text_Datei);
 s := Edit2.Text;
 Writeln(Text_Datei,s+' '+'ANS1');
 CloseFile(Text_Datei);
end;


//Seriennummer ANS2 eingeben
procedure TForm1.Edit3Exit(Sender: TObject);
var Text_Datei: TextFile;
    s:String;
begin
 AssignFile (Text_Datei, 'C:\Messwerte.txt');
 Append(Text_Datei);
 s := Edit3.Text;
 Writeln(Text_Datei,s+' '+'ANS2');
 CloseFile(Text_Datei);
end;


//Seriennummer ANS3 eingeben
procedure TForm1.Edit4Exit(Sender: TObject);
var Text_Datei: TextFile;
    s:String;
begin
 AssignFile (Text_Datei, 'C:\Messwerte.txt');
 Append(Text_Datei);
 s := Edit4.Text;
 Writeln(Text_Datei,s+' '+'ANS3');
 CloseFile(Text_Datei);
end;


//Seriennummer ANS4 eingeben
procedure TForm1.Edit5Exit(Sender: TObject);
var Text_Datei: TextFile;
    s:String;
begin
 AssignFile (Text_Datei, 'C:\Messwerte.txt');
 Append(Text_Datei);
 s := Edit5.Text;
 Writeln(Text_Datei,s+' '+'ANS4');
 CloseFile
(Text_Datei);
end;

[edit=Luckie]Delphi-Tags gesetzt. Beim nächsten Mal bitte selber machen. Danke. Mfg, Luckie[/edit]

heiopei 13. Apr 2004 14:06

Re: Wieder Funktionen, ich lerne es nie ;(
 
hallo teddyman,

z.b.

Delphi-Quellcode:
procedure schreib_ans(sernr: string; ans: Byte);   //sernr = die nummer; ans = sernr von 1 bis 4
var
  fp: textfile;   //dient als filepointer
begin
  assignFile(fp, 'C:\Messwerte.txt');             //gibt einen pointer auf die datei
  append(fp);                                     //öffnet die datei zum anhängen
  writeln(fp, sernr + 'ANS' + IntToStr(ans));    //schreib die sernr + 'Ans' + 1 bis 4
  closefile(fp);                                  //schließt die datei wieder
end;
ich hoffe ich konnte dir helfen und du verstehst, was die prozedur macht!
(ich hoffe ich hab mich nich verschrieben)

tschüss,
heiopei

[edit=Luckie]Noch so ein Kanditat ohne Delphi-Tags und das nach über 100 Beiträgen. Mfg, Luckie[/edit]
[edit=Luckie]Warum ist bei dir BBCode im Beitrag deaktiviert? :roll: Mfg, Luckie[/edit]

Teddyman 13. Apr 2004 14:22

Re: Wieder Funktionen, ich lerne es nie ;(
 
Danke Heipoei,
wie mache ich es denn so, dass die Seriennummern, die in Edit 1 bis Edit 4 stehen in die Messwerte.txt gespeichert werden?
danke.

Delphi-Quellcode:
procedure schreib_ans(sernr: string; ans: Byte); //sernr = die nummer; ans = sernr von 1 bis 4 
var
fp: textfile; //dient als filepointer
begin
assignFile(fp, 'C:\Messwerte.txt'); //gibt einen pointer auf die datei
append(fp); //öffnet die datei zum anhängen
writeln(fp, sernr + 'ANS' + IntToStr(ans)); //schreib die sernr + 'Ans' + 1 bis 4 
closefile(fp); //schließt die datei wieder
end;
[edit=Luckie]Hallo? Ich würde dich bitte die Delphi-Tags [ delphi] ... [ /delphi] (ohne Leerzeichen) selber zu setzen! Mfg, Luckie[/edit]

heiopei 13. Apr 2004 14:36

Re: Wieder Funktionen, ich lerne es nie ;(
 
hallo,
wenn du z.b. auf einen button drückst:

Delphi-Quellcode:
procedure Tform1.button1click(sender:tobject);
var
  i: Byte; //dient als zählschleife
begin
  for i := 1 to 4 do
  case if of:
  1: schreibans(edit1.text, 1);
  2: schreibans(edit1.text, 2);
  3: schreibans(edit1.text, 3);
  4: schreibans(edit1.text, 4);
  end;  //ende für case of schleife
end;
natürlich is das jetzt umständlich geschrieben, müsste aber gehen und ist relativ einfach zu verstehen.

tschüss,
heiopei

ps: geht das jetzt so mit den tags(hab das selber glaub ich auch noch net ausprobiert)

[edit=Luckie]BBCode aktiviert. Mfg, Luckie[/edit]
[edit=Luckie]Tags korrigiert. Mfg, Luckie[/edit]

sakura 13. Apr 2004 14:43

Re: Wieder Funktionen, ich lerne es nie ;(
 
Hinweis


Ich habe mal aufgeräumt. Zum Thema unnütze Beiträge sind alle verschwunden. ;)

@heiopei: Ich habe in Deinem Profil die BBCodes aktiviert. Das solltest Du auch so lassen :roll:

...:cat:...

Christian Seehase 13. Apr 2004 21:36

Re: Wieder Funktionen, ich lerne es nie ;(
 
Moin Teddyman,

als Ergänzung zu heiopeis Vorschlag mit der Eigenschaft Tag:

Fast jedes Control hat diese Eigenschaft. Es handelt sich hierbei um einen 32 Bit Wert, der dem Entwickler zur freien Verfügung steht, und dem Control fest zugeordnet ist.
Du könntest jetzt jedem Deiner Edit Felder hier den Wert zuweisen, der hinter den Text 'ANS' geschrieben werden soll, und kommst dann mit einer einzigen OnExit Routine für alle Edits aus:


Delphi-Quellcode:
//Seriennummer ANS1 eingeben
procedure TForm1.Edit2Exit(Sender: TObject);
var Text_Datei: TextFile;
    s:String;
begin
AssignFile (Text_Datei, 'C:\Messwerte.txt');
Append(Text_Datei);
// WICHTIG:
// Damit dies ohne zusätzliche Sicherheitsabfrage funktioniert
// darf die Routine ausschliesslich von Edit Feldern verwendet werden.
s := (Sender as TEdit).Text;
Writeln(Text_Datei,s+' '+'ANS'+IntToStr((Sender as TEdit).Tag));
CloseFile(Text_Datei);
end;

Im Objekt Inspektor kannst Du diese Routine dann jedem in Frage kommenden Edit Feld zuweisen, da anhand des Senders automatisch der richtige Inhalt (Text) und der richtige Wert (Tag) verwendet wird.

[EDIT]
Fehler korrigiert. Siehe Raiks Beitrag.
[/EDIT]

kiar 13. Apr 2004 21:39

Re: Wieder Funktionen, ich lerne es nie ;(
 
moin chris,
Delphi-Quellcode:
Sender.Tag as TEdit).Tag
kannst du mir das bitte mal erklären, ich dachte immer
Delphi-Quellcode:
(sender as TEdit).tag
reicht

raik

Christian Seehase 13. Apr 2004 22:04

Re: Wieder Funktionen, ich lerne es nie ;(
 
Moin Raik,

danke für den Tip.
War ein Schreibfehler :oops:

Es musst natürlich nur
Delphi-Quellcode:
(Sender as TEdit).Tag
heissen.

Wird sofort korrigiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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