AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Nummer der Datei um 1 erhöhen

Nummer der Datei um 1 erhöhen

Ein Thema von AnfängerDelphi · begonnen am 2. Apr 2013 · letzter Beitrag vom 4. Jul 2013
Antwort Antwort
AnfängerDelphi

Registriert seit: 20. Mai 2010
25 Beiträge
 
#1

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 17:56
Hallo an alle,

erst mal vielen Dank für die vielen Informationen.
Das mit dem Lernen ist die eine Seite,das Gelernte dann noch richtig umzusetzen,die andere Seite.
Ich werde jetzt die guten Tips mal ausprobieren.

Mit einer while-Schleife habe ich es schon ausprobiert,funktioniert aber nicht so richtig.
Es soll beim anklicken des Buttons eine Datei erstellt werden,die dann um 1 erhöht wird.

Mfg

AnfängerDelphi

Geändert von AnfängerDelphi ( 3. Apr 2013 um 18:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 20:01
Hallo,

das Problem an deinem Code ist die Variable x : Integer; .

Da diese zur Procedure ButtonClick gehört, also local ist, passiert folgendes:

x wird auf 1 geschrieben, "Datei1.txt" existiert nicht, also wird es erzeugt und die Procedure beendet
Somit entsteht "Datei1.txt".

Beim zweiten Klick ist x wieder 1. Es wird geprüft, ob "Datei1.txt" existiert. Da es nun diese aber gibt
wird die Zeile x := x+1; "aktiv", dadurch wird x = 2 und die Datei "Datei2.txt" erstellt.
Und das wars.

Du musst x in den Private-Abschnitt packen und x einmal auf 1 setzen, z. B. im OnCreate der Form.
Das setzen auf 1 im Button muss dann raus (das x in der Variablendefinition im Button ebenfalls)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 20:13
Zitat:
Da diese zur Procedure ButtonClick gehört, also local ist
??

Ist das nicht eher umgekehrt? public = global ?
Sie gehört zur Procedure ButtonClick aber privat.
Public wäre doch wohl wenn Sie für alle Proceduren und Functionen der aktuellen
Unit deklariert wäre.

Privat hebt sie sich immer wieder auf und zwar mit jeden Aufruf von ButtonClick.
Davon ab sollte man Aussagefähige Namen verwenden anstelle von x.. DateiCounter.
x Public zu deklarieren wäre eine schlechte Idee da man privat x sehr häufig verwendet.

Möglich das ich jetzt aber auch was verdrehe.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 20:17
Das local war auf die Procedure ButtonClick bezogen.
Weiss grad ned wie man das in der Delphi-Welt nennt

(bin momentan Siemens SPS-versaut und da heissen die Dinger Lokal-Variablen)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 20:18
Sie gehört zur Procedure ButtonClick aber privat.
Nein. Variablen innerhalb von Prozeduren und Funktionen nennt man lokale Variablen, Variablen außerhalb derselben globale. Private und Public legen lediglich fest, ob die global definierten Bezeichner nur für die jeweilige Unit oder eben auch für andere Units, welche die aktuelle Unit eingebunden haben, sichtbar sind.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Nummer der Datei um 1 erhöhen

  Alt 3. Apr 2013, 20:21
Ok dann hab ich da wohl was verdreht.

Dann halt im privaten abschnitt der classe TForm1 deklarieren
Aber wie schon gesagt mit Aussagekräftigen Namen.

Edit:
Destotrotz vom rein logischen Denken wäre eine Private Variable eine
die nur für die einzelne procedure/Function verwendet werden kann.

Selbst wenn diese im bereich der jeweiligen Classe in dem Fall TForm1
privat deklariert wäre könnte ich auf diese zugreifen wenn ich mich in einer
Procedure/Function die von dieser Classe erbt befinde.
Dann wäre sie aber wieder für diese Classe Public da ich innerhalb der vererbten proceduren darauf zugreifen kann.


Kuddelmuddel meiner Meinung nach.
Privat ist für mich wenn ich nur in dieser einen procedure von außen(public/öffentlich) nicht zugreifen kann.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  x : Integer;
Kann man auf diese Variable von irgendwoher zugreifen?
Abgesehen innerhalb dieser procedure.
Nein! Also nicht Public/öffentlich sondern Privat/Versteckt oder wie auch immer.
Lokal wäre dann das selbe wie Privat.

gruss

Geändert von EWeiss ( 3. Apr 2013 um 21:10 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Nummer der Datei um 1 erhöhen

  Alt 4. Apr 2013, 08:44
...vom rein logischen Denken wäre eine private Variable eine die nur für die einzelne procedure/Function verwendet werden kann...
Privat ist für mich wenn ich nur in dieser einen procedure von außen(public/öffentlich) nicht zugreifen kann.
'private' bezieht sich auf die Sichtbarkeit innerhalb der Klasse.
'lokal' bezieht sich auf die Sichtbarkeit innerhalb einer Methode.

Du scheinst dich an der Nomenklatur (privat vs. lokal) zu stören. Das muss man einfach so hinnehmen, wie es ist. Es ist 'per definitionem' so. Die Schlüsselwörter könnten auch 'rot' und 'gestreift' heißen.

'protected', also geschützt, sind Variablen schließlich auch nicht wirklich, selbst wenn sie so deklariert sind.

Zitat:
Selbst wenn diese ... privat deklariert wäre könnte ich auf diese zugreifen wenn ich mich in einer
Procedure/Function die von dieser Classe erbt befinde.
Aber auch nur, wenn sich der Quelltext der abgeleiteten Klasse in der gleichen Unit befindet: Ja. Ansonsten musst Du sie als 'protected' deklarieren.
  Mit Zitat antworten Zitat
AnfängerDelphi

Registriert seit: 20. Mai 2010
25 Beiträge
 
#8

AW: Nummer der Datei um 1 erhöhen

  Alt 8. Jun 2013, 22:01
Hallo an alle,

ich habe jetzt meinen Urlaub hinter mir und melde mich zurück.

Meine Zählervariable (x) habe ich global deklariert und initialisiert,und ich muß sagen,es hat funktioniert.

Warum funktioniert es nur dann,wenn die Variable global deklariert ist....???



Mfg

AnfängerDelphi
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:46 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-2025 by Thomas Breitkreuz