AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Datei beim Programmstart erstellen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Datei beim Programmstart erstellen lassen

Ein Thema von Wolverine · begonnen am 8. Dez 2004 · letzter Beitrag vom 10. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#1

Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 11:21
Hi Leute,
ich habe ein Problem was ich trotz der "Suchenfkt." nicht gelöst bekomme.
Entweder binn ich zu doof zum suchen oder es gibt noch keine Lösung für dieses Problem, ich gehe aber von ersterem aus.

Es geht sich hier um folgendes und zwar will ich, wie der Titel schon sagt, eine Datei beim Programmstart erstellen lassen.
Dabei hatte ich an eine Prozedur in der "OnCreate" Funtkion gedacht ungefähr so:

Code:
function OnCreate ........
begin
 Create 'Temp.txt';
end;
Ich hoffe ihr könnt mir bei meinem Problem weiterhelfen

Danke und Greetz
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  Mit Zitat antworten Zitat
Oovas

Registriert seit: 6. Dez 2004
6 Beiträge
 
#2

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 11:28
Versuch es mal so:
Delphi-Quellcode:
...
 var f : TextFile;
 var Ueberschrift: String;
...

// Datei definieren und erstellen
 AssignFile(F, DateinameUndPfad);
 {$IOCHECKS OFF}
 ReWrite(F);
 {$IOCHECKS ON}
 if IOResult = 0 then
 begin
   Ueberschrift := 'Hallo';
   Writeln(F, Ueberschrift);
 end
 else
 begin
   ShowMessage('Datei konnte nicht erstellt werden.');
 end;

...
//Datei schließen
CloseFile(F);
  Mit Zitat antworten Zitat
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 11:51
Hallo Oovas.

Danke für die schnelle Reaktion. Funtkioniert echt super. Genauso hab ich mir das vorgestellt.
Aber ein paar Fragen hab ich noch:
1) Die Überschrift muss ich ja nicht mit übergeben bzw. überhaupt erst die Prozedur dafür verfassen oder?
2) Wofür sind {$IOCHECKS OFF} bzw. {$IOCHECKS ON} gut und was bezwecken die???
3) Sehe ich das richtig, dass Daten erst sichtbar in die Datei geschrieben werden wenn sie über CloseFile(F) geschlossen wird?

Greetz
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  Mit Zitat antworten Zitat
Oovas

Registriert seit: 6. Dez 2004
6 Beiträge
 
#4

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:04
zu 1: Nein, brauchst du natürlich nicht, ich wollte dir damit nur zeigen, wie du was in die Datei schreiben kannst
zu 2: Dies sind sog. E/A-Prüfungen in Delphi. Mit IOResult = 0 prüfst du ob die Datei korrekt angelegt wurde, dann
kannst du was reinschreiben (oder auch nicht )
Dazu findest du auch was in der Delphi-Hilfe.
zu 3: Eigentlich nicht, soweit ich mich noch erinnere...... Schlagt mich wenn nicht.
Writeln schreibt soweit ich weis direkt in die Datei.
CloseFile(f) schließt dir deinen Dateizugriff.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:14
zu 3)
Es kann aber sein, dass das erst gepuffert wird. CloseFile schreibt dann auch den Puffer weg.
Peter
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:20
Zitat:
Writeln schreibt soweit ich weis direkt in die Datei.
CloseFile(f) schließt dir deinen Dateizugriff.
So isses
  Mit Zitat antworten Zitat
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:41
Ich hatte nämlich vor, die Sachen die in die Datei geschrieben werden sofort wieder auslesen zu lassen.
Deswegen habe ich gefragt.
Nach dem was ich bisher gesehn und herausgefunden habe ist dies nicht möglich, weil die Sachen erst nach dem "CloseFile" Befehl "sichtbar" gemacht werden.

Gibt es da evtl. noch ne andere Lösung???
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:45
Zitat von Wolverine:
...Gibt es da evtl. noch ne andere Lösung???
Indem du die Datei danach mit "reset" wieder zum Lesen öffnest.
Gruß
Hansa
  Mit Zitat antworten Zitat
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Datei beim Programmstart erstellen lassen

  Alt 8. Dez 2004, 12:54
Werden denn dann die Inhalte nicht gelöscht???
Und .... wie würde denn dann der Code aussehen? Evtl. so:

Code:
.....
procedure TForm1.Button1Click(Sender: TObject);
begin
Writeln(F, ComboBox1.Text);
OleContainer1.OleObject.Navigate(ComboBox1.Text);
CloseFile(F);
ResetFile(F);
end;
......
Die Prozedur wird ja von oben nach unten abgearbeitet, daher sollte der Code oben doch funktionieren !?!?!?

Danke schon mal für Eure Antworten und Hilfe.

Greetz
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  Mit Zitat antworten Zitat
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Datei beim Programmstart erstellen lassen

  Alt 10. Dez 2004, 12:27
Hallo,

nun steh ich schon wieder vor einem Problem, aber wahrscheinlich nur weil ich den Wald vor lauter Bäumen nicht seh
Ich habe es geschafft, die Datei erstellen zu lassen. Wenn das Programm beendet kommt ne Abfrage ob die Datei beibehalten werden soll oder nicht. Das funktioniert alles wunderbar.

Nun zu meinem Prob:
- Wenn ich das Programm starte, die Datei erstellt wird und ich eine Seite aufrufe wird diese in der Datei gespeichert.
- Gebe ich nun eine andere Seite ein um die aufzurufen bricht das Programm mit einer Fehlermeldung und einem Verweis auf die "Writeln" Zeile ab.

Hoffentlich könnt ihr mir helfen. Ich werde auch noch etwas Code uppen um euch die Suche zu erleichtern.

Danke schon mal im voraus.

edit ---> Hier der Code:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
OleContainer1.CreateObject('Shell.Explorer', False);
if FileExists('Temp.eab') then
 begin
  ShowMessage('Temporärer Verlauf aus Temp.eab geladen.');
  tempon:=1;
 end
else
 begin
  //Datei definieren und Erstellen
  AssignFile(F, 'Temp.eab');
  {$IOCHECKS OFF}
  ReWrite(F);
  {$IOCHECKS ON}
  if IOResult = 0 then
   begin
    Ueberschrift := 'Temporärer Verlauf';
    Writeln(F, Ueberschrift);
   end
  else
   begin
    ShowMessage ('Datei konnte nicht Erstellt werden');
   end
 end
end;

.......

procedure TForm1.Button1Click(Sender: TObject);
begin
Writeln(F, ComboBox1.Text); //auf diese Zeile wird bei Programmabbruch verwiesen
CloseFile(F);
OleContainer1.OleObject.Navigate(ComboBox1.Text);
Reset(F);
end;
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  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 18:42 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