AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Textfiles Verständnisfrage & Frage

Ein Thema von Grayknife · begonnen am 28. Feb 2015 · letzter Beitrag vom 2. Mär 2015
Antwort Antwort
Seite 1 von 3  1 23      
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#1

Textfiles Verständnisfrage & Frage

  Alt 28. Feb 2015, 23:24
Hallo DPler,
Ich möchte gerne eine Variable mit Integerwert, also zb. einfach 14 extern in einer Textdatei speichern. Dazu habe ich folgende Prozedur entwickelt:

Delphi-Quellcode:
procedure TForm1.Speichern;
 var Speicher: Textfile;
     GesH:Integer;
begin

 Try
   Reset(Speicher,'Speicher.txt');
   Readln(Speicher,GesH);
   GesZ:=GesH + GesZ;
 Except
   AssignFile(Speicher,'Speicher.txt');
 End;
 Rewrite(Speicher);
 Writeln(Speicher,GesZ);
 CloseFile(SPeicher);
end;
Dabei soll erst geschaut werden ob es die Datei schon gibt. Wenn ja wird in der Datei der Integerwert rausgelesen und in GesH gespeichert. Anschließend wird GesZ mit GesH addiert und in GesZ gespeichert.
Wenn keine datei mit dem Namen Speicher.txt existiert soll in der except schleife eine erstellt werden. Anschließend wird der Zeiger auf ganz oben gestellt, das neue GesZ bzw. das existierende in der 1. zeile gespeichert, und dann geschlossen.

Sind meine Überlegungen richtig?
denn es gibt 1 komischen Fehler:
1. Wenn keine Datei existiert, wird mir trotzdem ein Fehler angezeigt, das die Datei nicht gefunden wurde, aber eigentlich müsste doch durch AssignFile eine erstellt werden?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#2

AW: Textfiles Verständnisfrage & Frage

  Alt 28. Feb 2015, 23:35
Welche Delphi-Version verwendest du?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#3

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 00:03
FreePascal/Lazarus?
Delphi kennt kein derartigen Reset-Befehl (in der System.pas)

Zitat:
Wenn keine Datei existiert, wird mir trotzdem ein Fehler angezeigt
Wer zeigt den Fehler?
  • Welche Codezeile?
  • Der Debugger und/oder das Programm?

Fehler/Denkfehler:
  • AssignFile erstellt nichts, es initialisiert nur die Datei-Variable.
    Rewrite, Delphi-Referenz durchsuchenReset, Append öffnen/erstellen die Datei.
    Zitat:
    aber eigentlich müsste doch durch AssignFile eine erstellt werden
    Du hast bestimmt nicht die OH gelesen.
  • Man steuert nicht mit "Ausnahmen" den normalen Programmfluss.
    FileExists, IOResult oder Dergleichen?
  • Wenn die Datei von Reset geöffent wurde, wer schließt die dann wieder, bevor die nächten Dateioperationen (AssignFile/Rewrite) los gehn?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 00:56
Interessant wäre auch: Wo landet die Datei ohne Pfad Angabe?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#5

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 11:20
FreePascal/Lazarus?
Delphi kennt kein derartigen Reset-Befehl (in der System.pas)
Genau! Interessant ist aber die Fehlermeldung des Compilers (XE7):

Zitat:
E2158 System-Unit veraltet oder beschädigt: '@assign' fehlt
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 12:43
Hallo,

Reset gibt es auch in Delphi.

Allerdings muss auch ein AssignFile durchgeführt werden, wenn die Datei mit Reset geöffnet wird.
Beispiel hier.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 12:49
@Klaus01

Niemand hat behauptet, dass es Reset in Delphi nicht gibt.

himitsu hat gesagt, dass es allerdings kein Reset gibt, dass so Reset( Speicher, 'Speicher.txt' ); aufgerufen werden kann.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#8

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 14:58
Ahh, so schnell so viele Antworten

Also:
@Uwe Raabe, Hier ein Ausschnitt von der Info über Borland Delphi: "Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation." -> Also Version 10 !?

@himitsu, Sry, das war viel zu oberflächlich der Fehler: Das Programm lässt sich mit dem Debugger einwandfrei starten, Erst wenn die Prozedur ausgeführt wird, Kommt eine Infobox, wo ich das Programm Anhalten,Fortsetzen kann mit der Meldung: "Im Projekt Project1.exe ist eine Exception der KLasse EInOutError mit der Meldung "Datei nicht gefunden" aufgetreten." -> Also eine Benachrichtigung über die Debugger-Exception?!

Verstehe ich das richtig, dass ich nicht die Try-Except-Schleife verwenden kann? -> Muss ich dann eher eine If Fileexists=True then ... -Schleife verwenden?

@Luckie, Also so wie ich das immer überlege müsste sie in dem Ordner, wo sich die .Exe befindet, erstellt werden. Dachte ich mir immer jedenfalls ^^.

@Klaus01, Also kopiere ich einfach den Code aus dem Beispiel und bastel ihn in bei mir mit rein?

@Sir Rufo, Warum kann das Reset nicht so Reset(Speicher,'Speicher.txt') aufgerufen werden?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 15:11
Weil die Dokumentation das sagt?

Delphi: http://docwiki.embarcadero.com/Libra...e/System.Reset
FPC: http://www.freepascal.org/docs-html/...tem/reset.html
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 1. Mär 2015 um 15:13 Uhr)
  Mit Zitat antworten Zitat
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#10

AW: Textfiles Verständnisfrage & Frage

  Alt 1. Mär 2015, 15:26
@Sir Rufo, okey, also einfach nur Reset(Speicher) ? Aber das verstehe ich jetzt nicht Oder doch... also dann ändere ich jetzt den Code zu:
Delphi-Quellcode:
procedure TForm1.Speichern;
 var Speicher: Textfile;
     GesH:Integer;
begin
GesH:=0;
   AssignFile(Speicher,'Speicher.txt');
   Reset(Speicher);
   Readln(Speicher,GesH);
   GesZ:=GesH + GesZ;
 Rewrite(Speicher);
 Writeln(Speicher,GesZ);
 CloseFile(SPeicher);
end;
Okey, mit AssignFile weise ich also der Variablen Speicher einfach Speicher.txt zu?! Und wie kann ich jetzt eine Text Datei erstellen? o.0
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 20:32 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