Entwickler-Ecke
Dateizugriff - Zahl aus TXT Datei lesen
meiling - Mi 24.11.04 11:30
Titel: Zahl aus TXT Datei lesen
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
IngoD7 - Mi 24.11.04 11:53
Titel: Re: Zahl aus TXT Datei lesen
| 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 - Mi 24.11.04 11:54
Quelltext
1: 2:
| memo1.lines.loadfromfile('ou.txt'); strtoint(memo1.text); |
sowas?
edit: wofür man sowas braucht *denk*
herzi - Mi 24.11.04 11:54
Würde es einfach so machen
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'); try StrToInt(trim(datei.text)); 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 - 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:
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.
meiling - 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:
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
Christian S.: Code- durch Delphi-Tags ersetzt.
bms - 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
bms - Mi 24.11.04 12:37
| herzi hat folgendes geschrieben: |
Würde es einfach so machen
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'); try StrToInt(trim(datei.text)); 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.
inselberg - 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.
herzi - Mi 24.11.04 13:46
@Bms
werd mir mal das angucken...
Man lernt ja nie aus :)
IngoD7 - 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:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!