AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wo ist Typ text ?

Ein Thema von Hansa · begonnen am 13. Okt 2002 · letzter Beitrag vom 13. Okt 2002
Antwort Antwort
Seite 1 von 2  1 2   
Hansa

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

Wo ist Typ text ?

  Alt 13. Okt 2002, 11:43
Hi Leute,

habe hier einen Text, den ich zeilenweise auswerten muß.

Code:
VAR t : text;
    zeile : string;
begin
  assign (t,'TEST');
  reset (t);
  WHILE not eof (t) DO BEGIN
    readln (t,zeile);
// Zeile auswerten.
  END;
end;
Ist nicht viel, geht so aber nicht. Delphi kennt den Typ text nur bei Konsolenanw. Nun brauche ich weder eine Listbox, noch sonstwas auf dem Bildschirm, höchstens einen Zähler, dafür aber DB-Komponenten.

Soll ich da jetzt eine Konsolenanwendung draus machen oder was bietet sich als einfacher Ersatz an?

Gruß
Hansa

[edit]Doppelpost gelöscht; by Daniel B.[/edit]
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 13. Okt 2002, 11:48
Hallo Hansa,

das nennt sich TextFile und funktioniert schon noch.
Die Var nicht als Text deklarieren, sondern als TextFile.
Siehe auch OH --> TextFile.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#3
  Alt 13. Okt 2002, 11:52
Mal abgesehen davon, dass sich der Code bei mir unter Delphi 6 durchaus kompilieren lässt, könntest Du auch einfach eine StringListe nehmen:
Code:
[b]Procedure[/b] Foo;
[b]var[/b] Index : Integer;
     data : TStringList;
[b]begin[/b]

  data:= TStringList.Create;
  [b]TRY[/b]
    data.LoadFromFile( 'TEST' );
    [b]For[/b] Index:= 0 [b]To[/b] data.Count-1 [b]Do[/b]
    [b]Begin[/b]
      [color=#000080]// data[Index] auswerten[/color]
    [b]End[/b];
  [b]FINALLY[/b]
    data.Free;
  [b]END[/b];
 
[b]end[/b]
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4
  Alt 13. Okt 2002, 12:11
Danke an beide Daniels !

Verstehe zwar immer noch nicht, worin die Notwendigkeit bestanden hat, an den Standard-Pascal Sachen rumzufummeln, aber es geht einfach so :

text --> textfile
assign --> AssignFile

Ja, die Stringliste wäre eigentlich auch zu gebrauchen, aber wenn man mal das free vergißt ? Deshalb : TextFile.

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#5
  Alt 13. Okt 2002, 12:27
Hi Hansa,

genauso kann man das CloseFile() vergessen, wie du es nämlich auch tust...

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 13. Okt 2002, 12:37
Hi d3g,

hast ja Recht. Aber nur sofern AssignFile und Reset Speicher allokieren.

Gruß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7
  Alt 13. Okt 2002, 12:43
Moin Hansa,

AssignFile ist nicht das Problem. Das braucht Pascal nur für interne Zwecke.
Bei Reset/Rewrite wird intern dann die API CreateFile aufgerufen, und dadurch ein Dateihandle belegt, dass über CloseFile wieder freigegeben werden muss.
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
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8
  Alt 13. Okt 2002, 17:33
Hi,

stimmt alles, ist aber Haarspalterei. Bei einem vergessenen close ist ein FileHandle verbraucht, schön und gut. Bei vergessenem free der dafür angeforderte Speicherplatz, was mehr ist, als nur der Dateiname. Das Thema bietet sich aber dafür an, eine Nanosekunde an Rechenzeit zu gewinnen.

Gruß
Hansa
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 13. Okt 2002, 19:20
Moin Hansa,

dann mach' das mal in 'ner Schleife, unter 9x....
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
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10
  Alt 13. Okt 2002, 19:44
Hallo Christian,

hehehe , einwandfrei, habe zu spät gesehen, daß ich das nicht dabeigeschrieben habe. Vielleicht hast Du ja meine Frage gesehen, wie man verhindert, daß ein Programm aus Versehen mehrfach gestartet wird. Deshalb habe ich letztendlich Semaphoren eingebaut. Durch solche Sachen passieren dann die Effekte mit File-Handles usw. Gewesen wars natürlich keiner. Das ist immer köstlich, so etwas herauszufinden und jemandem zu erklären, der es sowieso nicht versteht und es wieder so macht, sobald man zur Tür raus ist.

Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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