Autor Beitrag
meiling
Hält's aus hier
Beiträge: 9

Win 2000 AS, Win XP Pro
D6 Pers
BeitragVerfasst: Mi 24.11.04 11:30 
Hallo,

ich habe wieder mal eine Anfänderfrage (!):

Wie kann ich eine Zahl aus einer txt Datei auslesen (Beispiel ou.txt)? Ich habe es schon mit LoadFromFile('...'); versucht, es funkt. aber nicht!

Ich möchte also nach eine Klick auf den Button eine Zahl aus einer TXT Datei in einen Label schreiben.

Ich weis, dass es in diesem Forum schon Themen gzu dem selben Thema gibt, die haben mir aber nicht wirklich weitergeholfen.

Wie geht das???
Danke ...
... meiling

_________________
MfG
Meiling
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mi 24.11.04 11:53 
meiling hat folgendes geschrieben:
Ich habe es schon mit LoadFromFile('...'); versucht, es funkt. aber nicht!


:roll:
Hast du das Sofakissen zurechtgerückt, das Moos von Dach gekratzt und laut "LoadFromFile" gerufen - oder wie hast du's gemacht?
inselberg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458



BeitragVerfasst: Mi 24.11.04 11:54 
ausblenden Quelltext
1:
2:
memo1.lines.loadfromfile('ou.txt');
strtoint(memo1.text);


sowas?

edit: wofür man sowas braucht *denk*

_________________
hans bist du das ?


Zuletzt bearbeitet von inselberg am Mi 24.11.04 11:56, insgesamt 1-mal bearbeitet
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: Mi 24.11.04 11:54 
Würde es einfach so machen
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure lesezahl;
var 
  datei:TStrings;
  fehler:boolean;
begin 
  fehler:=false;
  datei:=TStringlist.create();
  datei.loadfromfile('out.txt'); // Datei laden
  try 
    StrToInt(trim(datei.text)); // Überprüfen ob es eine Zahl ist 
  except 
    fehler:=true;
  end;
  if fehler=false then label1.caption:=trim(datei.text)
  else Showmessage('Inhalt der Textdatei ist keine Zahl');
  datei.free;
end;
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 24.11.04 12:06 
Also, für das was du vorhast gibt es leider keine direkte Möglichkeit. Es ist also nicht möglich einen Labeltext direkt zu speichern. Was aber drinn ist, daß ist das Speichern über eine StringList und Textdatei oder das Speichern des Labeltextes in einer Ini-Datei. Wobei es nicht die Endung Ini haben muß. Das wüde in etwas so ausehen:

ausblenden Quelltext
1:
2:
[Texte]
Label1 = 1234


Das wäre die "saubere" Methode, weil man einzelne Werte einfach so sichert. Hier kannst du auch mehrere Werte sichern.

Möglich ist aber auch StringList und eine Textdatei. Die Textdatei würde aus einer Zeile bestehen. Du müßtest die Zeile mit StringList einlesen und dann die eine Zeile übergeben.

Dann gibt es noch weitere Möglichkeiten. Allerdings wirde es da schon ein wenig komplizierter.

Sag also welche Methode du machen willst und dann können wir genauer werden.

//EDIT: einen kleinen R-Fehler berseitigt.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(


Zuletzt bearbeitet von bms am Mi 24.11.04 13:47, insgesamt 1-mal bearbeitet
meiling Threadstarter
Hält's aus hier
Beiträge: 9

Win 2000 AS, Win XP Pro
D6 Pers
BeitragVerfasst: Mi 24.11.04 12:17 
IngoD7 hat folgendes geschrieben:

Hast du das Sofakissen zurechtgerückt, das Moos von Dach gekratzt und laut "LoadFromFile" gerufen - oder wie hast du's gemacht?

Nein! Ich habe vom Bett aus gerufen :) !

Zu bms:
Ich möchte kein Label Inhalt Speichern (!) sondern eine TXT Datei auslesen und in einem Label ausgeben!! Erst lesen, dann antworten!!

Ich habe es jetzt so gemacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
...
var datei:TStrings;
...
  datei:=TStringlist.create();  
  datei.loadfromfile('ou.tmp');
  neu_ergebniss.caption:=trim(datei.text);

Es funkt.

Zum Allgemeinen Verständniss:
Ich habe ein C++ Programm in der Console. Das Delphi Programm stellt ein GUI Programm für das Consolen Programm dar.



Danke euch allen!

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.

_________________
MfG
Meiling
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 24.11.04 12:31 
meiling hat folgendes geschrieben:
Erst lesen, dann antworten!!


meiling hat folgendes geschrieben:
Wie kann ich eine Zahl aus einer txt Datei auslesen


Wo gelesen wird, da wird in der Regel auch gespeichert. Die beiden Sachen gehören einfach zusammen und es ist in der Regel nur eine kleine Änderung um aus dem einem das andere zu machen. Andes ausgedrückt könnte man sagen: nur Schwachköpfe lesen "in Datei schreiben" und sagen sich "was will er von mir? Ich will doch lesen.".

Da ich aber öffters solche Schnellschüsse wie oben mach und ich auf keinen Fall riskieren will, daß du noch mal gezwungen wirst so einen blöden Sprüch wie oben loszulassen, werde ich dich und deine Fragen in Zukunft ignorieren :D

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
bms
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 735

Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
BeitragVerfasst: Mi 24.11.04 12:37 
herzi hat folgendes geschrieben:
Würde es einfach so machen
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure lesezahl;
var 
  datei:TStrings;
  fehler:boolean;
begin 
  fehler:=false;
  datei:=TStringlist.create();
  datei.loadfromfile('out.txt'); // Datei laden
  try 
    StrToInt(trim(datei.text)); // Überprüfen ob es eine Zahl ist 
  except 
    fehler:=true;
  end;
  if fehler=false then label1.caption:=trim(datei.text)
  else Showmessage('Inhalt der Textdatei ist keine Zahl');
  datei.free;
end;


@herzi

Mit Exceptions prüft man nicht ob ein Text eine Zahl ist. Dafür gibt andere Möglichkeiten. Soweit es geht kann man mit StrToIntDef sowas abfangen. Sonst kann man mit Val Exceptionfrei konvertieren und prüfen ob da ein Fehler in der Zahl ist.

Auf der anderen Seite hast du wiederum vergessen das Objekt mit Try Finally zu sichern.

_________________
VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >:(
inselberg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 458



BeitragVerfasst: Mi 24.11.04 13:25 
jetzt ist er auch noch beleidigt ... und ignoriert jetzt seine fragen ...

gott im himmel wo sind wir denn? in "kleinkarierthausen" oder in "er-nimmt-nicht-meine-lösung-die-doch-die-einzig-wahre-der-welt-ist-stadt"

die problemchen mancher leute möcht ich haben...

anmerkung: da dies ein (innerer) monolog ist kann es niemand lesen und kann auch niemand (nein auch du nicht bms) drauf antworten.

_________________
hans bist du das ?
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: Mi 24.11.04 13:46 
@Bms

werd mir mal das angucken...

Man lernt ja nie aus :)
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mi 24.11.04 14:02 
[OffTopic]
inselberg hat folgendes geschrieben:
da dies ein (innerer) monolog ist kann es niemand lesen und kann auch niemand (nein auch du nicht bms) drauf antworten.

Wozu auch ... :roll:
[/OffTopic]

meiling hat folgendes geschrieben:

Nein! Ich habe vom Bett aus gerufen :) !

Ja, das "funkt" für gewöhnlich ebenfalls nicht.

bms hat folgendes geschrieben:
ob ein Text eine Zahl ist. Dafür gibt andere Möglichkeiten.

Yepp, z.B. TryStrToInt. :wink: