AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wieder Funktionen, ich lerne es nie ;(
Thema durchsuchen
Ansicht
Themen-Optionen

Wieder Funktionen, ich lerne es nie ;(

Ein Thema von Teddyman · begonnen am 13. Apr 2004 · letzter Beitrag vom 13. Apr 2004
Antwort Antwort
Teddyman

Registriert seit: 3. Mär 2004
23 Beiträge
 
#1

Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 14:58
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]
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#2

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 15:06
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]
  Mit Zitat antworten Zitat
Teddyman

Registriert seit: 3. Mär 2004
23 Beiträge
 
#3

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 15:22
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]
  Mit Zitat antworten Zitat
heiopei
(Gast)

n/a Beiträge
 
#4

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 15:36
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]
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 15:43
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

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 22:36
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]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#7

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 22:39
moin chris,
Sender.Tag as TEdit).Tag kannst du mir das bitte mal erklären, ich dachte immer(sender as TEdit).tag reicht

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Wieder Funktionen, ich lerne es nie ;(

  Alt 13. Apr 2004, 23:04
Moin Raik,

danke für den Tip.
War ein Schreibfehler

Es musst natürlich nur
(Sender as TEdit).Tag heissen.

Wird sofort korrigiert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 00:10 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