AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Anfänger möchte eine Datei erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Anfänger möchte eine Datei erstellen

Ein Thema von Andi · begonnen am 12. Sep 2003 · letzter Beitrag vom 17. Sep 2003
Antwort Antwort
Seite 1 von 2  1 2      
Andi

Registriert seit: 20. Okt 2002
16 Beiträge
 
Delphi 6 Personal
 
#1

Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 00:19
Hallo!

Ich möchte eine Datei erstellen z.B. "Test.txt"
Ich habe einen Button und eine Variable , deren Inhalt sich ständig ändert.
Wenn ich auf den Button clicke, soll eine Datei erstellt werden " Test.txt", in die dann der Inhalt der Variable gespeichert wird.
Wenn ich den Button wieder drücke, dann soll der sich mittlerweile geänderte Variablenwert in die selbe Datei gespeichert werden und unter den ersten Eintrag geschrieben werden, so daß es eine Art Liste wird, die immer grösser wird, eine Art Protokoll.
Später möchte ich dann zu jedem Eintrag(also Variablenwert) noch Datum und Uhrzeit dazu haben.
Eine laufende Nummer wäre auch ganz gut am Anfang.

Z.B. so

1;Variablenwert;Datum;Uhrzeit

nach dem 2. Click dann so:

1;Variablenwert;datum;Uhrzeit;
2;Variablenwert;datum;Uhrzeit;

Die Semikolons möchte ich haben, damit man das später mal in Excel haben kann.

Die Datei soll sich also immer Erweitern.
Vorher soll man aber noch den Dateinamen dieser "Protokolldatei" eingeben können.
und sie soll max. 65536 Linien lang sein können.

ISt so etwas möglich? Ich habe nie mit dateien gearbeitet und möchte Anhand dieses Beispiels gerne lernen.

Könnt Ihr mir Starthilfe geben oder Links zu ein paat TUTs, damit ich loslegen kann?

Besten Dank!

sagt
Andi
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 00:25
Moin Andi,

da ich mal davon ausgehe, dass Du eine Zeile wie von Dir beschrieben, hinbekommst, kann ich Dir empfehlen Dich mal mit TStringList zu beschäftigen.
Falls Du die schon kennst, und/oder es gerne "eleganter" haben möchtest wäre als nächstes wohl TFileStream sinnvoll.

Zu beiden Themen solltest Du sowohl in der Hilfe, als auch hier viele Beispiele finden.
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
Ronny Grabo

Registriert seit: 16. Mai 2003
41 Beiträge
 
#3

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 00:45
Eine schnelle Variante wäre folgende :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Testlst:TStringList;
var TestString:String;
begin
//String wird initialisiert
TestString:='Inhalt der Testvariable';
//StringListe wird erstellt
Testlst:=TStringList.Create;
//Variable Teststring wird der Stringliste übergeben
Testlst.Add(TestString);
//StringListe wird gespeichert
Testlst.SaveToFile('test.txt');
//Stringliste wird freigegeben
Testlst.Free;
end;
Wenn es nur um eine Protokollfunktion geht, kann man Daten an die StringListe anhängen und anschließend beim Form.OnClose Ereignis speichert man das ganze ab und gibt die Liste wieder frei. Natürlich mittels einer try ... except - Klausel (siehe OH / Delphi Hilfe).

Für das schnelle Auffinden :
TStringList (in der Delphi-Hilfe unter Suchen eingeben)
try...except (in der Delphi-Hilfe unter Suchen eingeben)
---
Meine Internetseite : http://www.ronny-grabo.de
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#4

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 08:55
Versuchs mal mit INI-Dateien. Oder gibt das probleme mit excel?
In Delphi kann man das auf jeden fall einfacher auslesen als die sache mit den Semikolons
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#5

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 09:00
Zitat von General2003:
Versuchs mal mit INI-Dateien. Oder gibt das probleme mit excel?
Mit Sicherheit. Wie soll Excel eine INI-Datei interpretieren?

Zitat:
In Delphi kann man das auf jeden fall einfacher auslesen als die sache mit den Semikolons
Beides ist sehr einfach. TStringList ist ein mächtiges Instrument.

Ggf. ist es hier allerdings besser mit normalen Dateioperationen für Textdateien zu arbeiten.
  Mit Zitat antworten Zitat
Benutzerbild von Nalincah
Nalincah

Registriert seit: 18. Jul 2003
898 Beiträge
 
Delphi 6 Professional
 
#6

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 09:02
Aber das auslesen der Datei. Die muss doch erstmal zerstückelt werden um die in ne StringList zu packen, oder?
Sebastian
Ehemals bekannt als General2004
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: Anfänger möchte eine Datei erstellen

  Alt 12. Sep 2003, 09:05
Zitat von General2003:
Aber das auslesen der Datei. Die muss doch erstmal zerstückelt werden um die in ne StringList zu packen, oder?
Siehe Dir mal TStringList an. Aus dem Kopf sage ich mal, da war was mit "CommaText". Abgesehen davon ist das Zerstückeln von Texten
1) hier nicht notwendig, da die Datei erstellt werden soll
2) ist es die eine Basis der Programmierung Strings ver-/bearbeiten zu können und die notwendigen Methoden Kleinkram.
  Mit Zitat antworten Zitat
Andi

Registriert seit: 20. Okt 2002
16 Beiträge
 
Delphi 6 Personal
 
#8

Re: Anfänger möchte eine Datei erstellen

  Alt 15. Sep 2003, 01:22
Hi!

Dankeschön für Eure Tips!

@christian seehase: Leider krieg ich das nicht hin mit meiner Zeile.

Ich habe den Code mal von Ronny Grabo ausprobiert. Es funktioniert und die Datei wird angelegt.Wenn ich aber wieder auf meinen Button drücke , dann wird der Wert nicht angehängt, sondern überschrieben. Das wollte ich ja eigentlich nicht.Was muss ich tun, damit der Wert angehängt wird?

Ach ja und kann mir jemand nen Tip geben, wie man das mit der laufenden Nummer , datum und Uhrzeit hinbekommt?

ich habe es so versucht , bekomme aber Fehlermeldungen

Teststring:=laufendenummer,meinwert; (datum und Uhrzeit weiss ich noch nicht, wie man das einlesen kann)

Die laufende nummer soll sich bei jedem Klick addieren, deshalb mach ich: Zahl:=Zahl + 1; und danach wandle ich den Integer Typen "Zahl" in einen String "laufendenummer" , die dann ja auch ausgegeben werden soll.
also laufendenummer:=inttostr(zahl);


Ich möchte halt beide String-Variablen in meine Teststring-Variable packen, ich denke ich tippe da was falsch.Bei Turbo-pascal konnte man das meiner Meinung nach so machen.

Danke nochmals!
MfG
ANDI
  Mit Zitat antworten Zitat
johny

Registriert seit: 12. Aug 2003
Ort: Koblenz
32 Beiträge
 
#9

Re: Anfänger möchte eine Datei erstellen

  Alt 15. Sep 2003, 15:20
Das hier sollte funktionieren.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 LogFile: TextFile;
 sVariable : string;
begin
 sVariable := 'Test';
 AssignFile(LogFile, 'Test.txt');
 if FileExists('Test.txt') then
  Append(LogFile)
  else
  Rewrite(LogFile); // create the file if necessary
  try
  WriteLn(LogFile, sVariable);
  finally
  CloseFile(LogFile);
 end;
end;
DenWert der Variable sVariable habe ich au 'Test' festgelegt. Den kannst du natürlich im Programm ändern, dann wird auch der veränderte Wert übernommen und in die Text-Datei geschrieben.
So, jetzt fehlt nur noch die laufende Nummer und das Datum. Das sollte aber auch zu schaffen sein. Allerdings muss man für die Nummer die Anzahl der Zeilen ermitteln oder (was noch besser ist) die alte Nummer auslesen und erhöhen.
  Mit Zitat antworten Zitat
johny

Registriert seit: 12. Aug 2003
Ort: Koblenz
32 Beiträge
 
#10

Re: Anfänger möchte eine Datei erstellen

  Alt 15. Sep 2003, 15:47
So, ich habe den Quelltext noch etwas erweitert. Jetzt wird das Datum, die Systemzeit und der Inhalt der Variable protokolliert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 LogFile: TextFile;
 sVariable : string;
 sDate : string;
 sTime : string;
begin
 sDate := DateToStr(Now);
 sTime := TimeToStr(Now);
 sVariable := 'Test';
 AssignFile(LogFile, 'Test.txt');
 if FileExists('Test.txt') then
  Append(LogFile)
  else
  Rewrite(LogFile); // create the file if necessary
  try
  WriteLn(LogFile, sDate + ' ' + sTime + ' ' + sVariable);
  finally
  CloseFile(LogFile);
 end;
end;
Das sieht dann so aus:

Code:
15.09.2003 15:44:15 Test
15.09.2003 15:44:16 Test
15.09.2003 15:44:17 Test
15.09.2003 15:45:52 Test
15.09.2003 15:45:53 Test
15.09.2003 15:45:55 Test
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:22 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