Pascal fájlbeolvasás? (többi lent)
Hali!
Nos, Free Pascalban kell írnom egy programot, szövegelemzőt, és elakadtam. Be kéne olvasnom a fájlt, ez megis van viszont már itt az első probléma, hogy nem az egészet olvassa be legalábbis ahogy látom. 4000 karakteres ékezetek nélküli TXT fájl, viszont csak kb. 256 karakter körül olvas be, vagy nem látom a másik felét mivel a görgetés még nincs megcsinálva. Nem azt kérem, hogy csináljátok meg helyettem, csak egy kicsit leírni valahogy, hogy kéne megoldani.
Tehát a feladat: beolvasni rendesen a szöveg fájlból + még sortörést rakni minden sor végére, viszont úgy törje meg hogy szóköznél. Előre is köszi,nagyon jó lenne ha valaki tudna segíteni,aki segít annak megy a zöld.
Első: kószi, de mindent végig böngéztem,de eggyik se ugy ment ahogy kéne, ezért kérdeztem itt.
2#: Köszi délután megpróbálom :)
Próbáltam, de úgy sem olvassa be. Ugyanúgy nem olvassa be az egész fájlt. Nagyon jó lenne ha valaki tudna segíteni, mivel vasárnapig kész kell legyek vele, és ezen kívül még van más feladat is, viszont azt már könnyebb lesz megcsinálni.
Feltöltöttem a pascal fájlt + amit be kell olvasni, nagyon megköszönömm ha valaki tudna benne segíteni,előre is köszi!
program project1;
{$mode objfpc}{$H+}
uses Crt, Classes;
var
f: Text;
s: string;
Data: string;
procedure FajlBeolvas;
begin
Assign(f, 'szoveg1.txt');
{$I-}
Reset(f);
if (IOResult = 0) then
begin
while not (EOF(f)) do
begin
ReadLn(f, s);
Data := Data + s;
end;
end
else
WriteLn('Nem talalhato fajl');
Close(f);
{$I+}
end;
begin
ClrScr;
FajlBeolvas;
WriteLn(Data);
ReadKey;
end.
A Data stringben van a szöveged. Jó így vagy 'b' terv ?
'B' terv:
program project1;
{$mode objfpc}{$H+}
uses Crt, Classes;
var
f: Text;
s: string;
i : integer;
Data: array of string;
procedure FajlBeolvas;
begin
Assign(f, 'szoveg1.txt');
{$I-}
Reset(f);
if (IOResult = 0) then
begin
while not (EOF(f)) do
begin
ReadLn(f, s);
SetLength(Data, Length(Data) + 1);
Data[Length(Data) - 1] := s;
end;
end
else
WriteLn('Nem talalhato fajl');
Close(f);
{$I+}
end;
begin
ClrScr;
FajlBeolvas;
for i := Low(Data) to High(Data) do
WriteLn(Data[i]);
ReadKey;
end.
'C' terv:
program project1;
{$mode objfpc}{$H+}
uses Crt, Classes, Sysutils;
var
myData : TStringList;
i : integer;
function FajlBeolvas(myFile : string) : Boolean;
begin
FajlBeolvas := True;
if not FileExists(myFile) then
begin
WriteLn('A file nem található!');
FajlBeolvas := False;
ReadLn;
Exit;
end;
myData := TStringList.Create;
try
myData.LoadFromFile(myFile);
except
On E : EInOutError do
begin
WriteLn('File olvasási hiba: ' + E.Message);
FajlBeolvas := False;
ReadLn;
end;
end;
end;
begin
ClrScr;
if FajlBeolvas('szoveg1.txt') then for i := 0 to myData.count - 1 do WriteLn(myData.Strings[i]);
myData.Free;
Readln;
end.
Talán ennyiből már megy :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!