Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Probleme mit Writeline (https://www.delphipraxis.net/106460-probleme-mit-writeline.html)

STS301 11. Jan 2008 08:23


Probleme mit Writeline
 
Hallo

so einfach und Delphi 2005 zeigt mir eine Fehlermeldung an, wenn ich eingebe:

Delphi-Quellcode:
Writeln('Bitte geben Sie die Anzahl der Gäste ein:');
Fehlermeldung:

Im Projekt Projekt2.exe ist eine Exception in der Klasse EInOutError mit der Meldung 'E/A Fehler 105' aufgetreten.

DeddyH 11. Jan 2008 08:33

Re: Probleme mit Writeline
 
Das ist aber eine Konsolenanwendung?

marabu 11. Jan 2008 08:53

Re: Probleme mit Writeline
 
Hallo Sebastian,

Fehler 105 besagt, dass du die Datei (hier OUTPUT) nicht geöffnet hast.

Delphi-Quellcode:
{$APPTYPE CONSOLE}

var
  con: TextFile;
  n: Integer;

begin
  Assign(con, 'con');
  Rewrite(con);
  Writeln(con, 'Bitte geben Sie die Anzahl der Gäste ein:');
  ReadLn(con, n);
  CloseFile(con);
end;
Freundliche Grüße

STS301 11. Jan 2008 09:03

Re: Probleme mit Writeline
 
das sieht bei mir jetzt so aus

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  con: TextFile;
  n: Integer;

begin
  Assign(con, 'con');
  Rewrite(con);
  Writeln(con, 'Bitte geben Sie die Anzahl der Gäste ein:');
  ReadLn(con, n);
  CloseFile(con);

end.
jetzt tritt Fehler 104 auf :gruebel:

Klaus01 11. Jan 2008 09:08

Re: Probleme mit Writeline
 
Zitat:

Delphi-Quellcode:
begin
  Assign(con, 'con');
  Rewrite(con);
  Writeln(con, 'Bitte geben Sie die Anzahl der Gäste ein:');
  ReadLn(con, n);
  CloseFile(con);

end.

Rewrite öffnet die Datei zum Schreiben.
Reset würde die Datei zum lesen öffnen.

Delphi-Quellcode:
  Assign(con, 'con');
  Rewrite(con);
  Writeln(con, 'Bitte geben Sie die Anzahl der Gäste ein:');
  CloseFile(con);
  Reset(con);
  ReadLn(con, n);
  CloseFile(con);
Und wenn Du aus dem Textfile liest, kannst Du nur Strings auslesen.
Wenn Du Integer haben willst, musst Du den String konvertieren (strtoInt).

Vielleicht schreibst Du nochwas Du überhaupt machen willst.
Ich habe fast den Eindruck Du willst etwas auf dem Bildschirm ausgeben
und von dort etwas einlesen?

Grüße
Klaus

Dax 11. Jan 2008 09:11

Re: Probleme mit Writeline
 
Und Reset setzt nebenbei den Dateizeiger auf 0. Tipp: CON ist ein Pseudofile und Standardmäßig Read/Write-geöffnet.

DeddyH 11. Jan 2008 09:13

Re: Probleme mit Writeline
 
Also, bei mir funktioniert es. Meine Hilfe meint zu writeln:
Zitat:

Zitat von Online-Hilfe
Wird eine Anwendung als Konsolenanwendung compiliert (mit der Option Textbildschirm-Anwendung erzeugen in der Registerkarte Linker des Dialogfelds Projekt/Optionen oder dem Parameter -cc des Kommandozeilen-Compilers), werden die Dateien Input und Output automatisch dem Konsolenfenster der Anwendung zugeordnet. Bei anderen Anwendungen sführt jeder Versuch, aus Input zu lesen oder in Output zu schreiben, zu einem E/A-Fehler.

Eine kleine funktionierende Testanwendung:
Delphi-Quellcode:
program Blubb;

uses
  SysUtils;

{$APPTYPE CONSOLE}

var s: string;

begin
  writeln('Irgendwas eingeben:');
  readln(s);
  writeln('Sie haben eingegeben: ' + s);
  readln;
end.

Luckie 11. Jan 2008 09:14

Re: Probleme mit Writeline
 
Dem Text nach zu Urteilen willst du den Text in einer Konsole ausgeben. Warum um Himmels Willen machst du den Umweg über CON?

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  n: Integer;

begin
  Writeln('Bitte geben Sie die Anzahl der Gäste ein:');
end.
Der Fehler liegt bestimmt nicht in der Writeln-Anweisung, da bleibt der Debugger wohl nur stehen.

sirius 11. Jan 2008 09:16

Re: Probleme mit Writeline
 
Enteder komplett Konsolenanwendung, oder MSDN-Library durchsuchenAllocconsole

Aber vielleicht soll es auch gar keine Konsole werden :mrgreen:

DeddyH 11. Jan 2008 09:17

Re: Probleme mit Writeline
 
Zitat:

Zitat von Luckie
Warum um Himmels Willen machst du den Umweg über CON?

Genau darauf wollte ich hinaus ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz