AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi datei einlesen, jedes wort in eigene zeile setzten, dat ausl
Thema durchsuchen
Ansicht
Themen-Optionen

datei einlesen, jedes wort in eigene zeile setzten, dat ausl

Ein Thema von Molzer · begonnen am 3. Jan 2009 · letzter Beitrag vom 3. Jan 2009
Antwort Antwort
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#1

datei einlesen, jedes wort in eigene zeile setzten, dat ausl

  Alt 3. Jan 2009, 12:02
hallo!
hab problem mit meiner case of funktion: "ordinaltyp erforderlich"???

Delphi-Quellcode:
var F,g:Textfile;
    c:string;
begin
assignfile (f, 'input.txt');
reset (f);
assignfile (g, 'output.txt');
rewrite (g);

zeile:=' ';
while not eof (f) do
begin
  read (f,c);
  case c of
  'A'..'Z', 'a'..'z', '0'..'9':Zeile + Zeile + f;
  else begin if length (zeile) >0 then writeln (g,zeile);
             zeile:=' ';
  closefile (f);
  closefile (g);
  end;
  end;

  end;
  Mit Zitat antworten Zitat
silver-moon-2000

Registriert seit: 18. Feb 2007
Ort: Schweinfurt
170 Beiträge
 
Delphi XE Professional
 
#2

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 12:20
Zitat von Molzer:
Delphi-Quellcode:
[...]
  case c of
  'A'..'Z', 'a'..'z', '0'..'9':Zeile + Zeile + f;
  else begin if length (zeile) >0 then writeln (g,zeile);
             zeile:=' ';
[...]
Delphi mag bei case keine strings, sondern nur ordinal-typen, also Zahlen.
In Deinem Fall kann man das aber relativ leicht umschreiben. Probier' es mal so (ungetestet):

Delphi-Quellcode:
[...]
var
  c : Char;
  [...]
begin
  if c in ['A'..'Z', 'a'..'z', '0'..'9'] then
    zeile := zeile + f
  else
  begin
    if Length(zeile) > 0 then WriteLn(g, zeile);
    zeile := '';
  end;
[edt] c muss natürlich vom Typ char sein...aargh
hätte heute kürzer schlafen sollen
[edt2] whopps, da habe ich wohl einige Posts verschlafen während meines edits, sorry fürs nachträgliche editieren
Tobias
Bitte nicht hauen , ich weiß es nicht besser
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#3

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 12:26
dafür hab ich jetzt:

[Pascal Fehler] Project1.dpr(20): E2010 Inkompatible Typen: 'string' und 'Char'
[Pascal Fehler] Project1.dpr(22): E2010 Inkompatible Typen: 'string' und 'Text'
  Mit Zitat antworten Zitat
Klaus01

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

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 12:30
ersetze den Typ von c durch char.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 12:30
case c[1] of
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#6

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 12:47
hab noch einen fehler:
[Pascal Fehler] Project1.dpr(23): E2010 Inkompatible Typen: 'string' und 'Text'

in zeile:
else begin if length (zeile) >0 then writeln (g,zeile);

das wird wohl g+zeile sein, aber das sollte ja so sein??
  Mit Zitat antworten Zitat
Klaus01

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

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 13:20
Hallo,

mit welcher Delphi Version arbeitet denn Du?
Delphi 2009: String = UniCode
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#8

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 13:23
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation. Alle Rechte vorbehalten.
  Mit Zitat antworten Zitat
Klaus01

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

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 13:36
bei
writeln (g,zeile);

g ist Dein FileHandle
zeile ist das was Du in die Datei schreiben willst.

Und String kann/sollte bei Textfile benutzt werden.

Hier bei diesem simplen Beispiel mosert der Parser/Compiler nicht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  z: String;
  tFile : TextFile;
begin
  assignFile(tFile,'e:\textfile.txt');
  rewrite(tFile);
  z:='12345';
  writeLn(tFile,z);
  closeFile(tFile);

end;
Musst Du mit TextFile arbeiten oder ginge auch eine StringList
oder ein FileStream?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#10

Re: datei einlesen, jedes wort in eigene zeile setzten, dat

  Alt 3. Jan 2009, 14:10
aber wieso geht dann das:


Zitat von Molzer:
hab noch einen fehler:
[Pascal Fehler] Project1.dpr(23): E2010 Inkompatible Typen: 'string' und 'Text'

in zeile:
else begin if length (zeile) >0 then writeln (g,zeile);

das wird wohl g+zeile sein, aber das sollte ja so sein??
nicht?? is ja eh g=textfile und zeile_=string.
  Mit Zitat antworten Zitat
Antwort Antwort


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:12 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