Pewnie po co się postarać i pomyśleć, lepiej na forum wyłudzić gotowca i zaliczyć, zdać, a później zapomnieć. Taka zmodyfikowana zasada trzech "Z". Ech, masz. Nie jest idealne, sam sobie to dopasuj do swoich potrzeb. Bo na przykład jak w pliku będzie:
Test
Tralala.
To wynikiem będzie zdanie Test Tralala.
, ale tak chyba ma być skoro założymy, że zdania mogą być różnie ułożone. Poza tym zdania w pliku wejściowym powinny być w standardowym kodowaniu Windowsa CP, bo takowe przekonwertuje funkcja którą dodałem. I widać, że sezon zaliczeń się zaczął. Ale się skończy wasze cwaniactwo i madmike będzie wywalał takie posty, bo ja będę w pracy albo zmęczony po niej i nie będę na takie coś odpisywał (teraz wyjątkowo odpisałem, bo i tak nie chce mi się jeszcze iść spać to siedze chociaż jutro na rano do roboty), tylko sam wywalać będę do Kosza jak zauważe. Ja wiem, byłeś w szpitalu, z reką w gipsie albo nauczyciel nic nie tłumaczył. Tak, lenistwo można co już nie raz widzieliśmy usprawiedliwiać na tysiąc sposóbów. Dostałeś wcześnej naprowadzający Ciebie przykład to trzeba było siąść i pokombinowac, ale po co frajer olesio zrobi za Ciebie. Ostatni raz, bo się za dobrzy dla Was zrobiliśmy. Ale po co "strzępić klawiaturę" po próżnicy, można gadać i tak będzie masę takich postów - już niedlugo coraz więcej ;/ Ale zadanie ogólnie nie jest trudne, skoro taki noob jak ja je ogarnął, to Ty też byś dał radę, tylko warunek jest taki, że trzeba chcieć, a nie udać że coś tam się modziło i spocząć na laurach.
program for_lazy_hiob21;
{$APPTYPE CONSOLE}
uses
WIndows;
const
Separator = '.';
AFileName = 'D:\test.txt';
OkChars : set of Char = ['A'..'Z', 'Ć', 'Ł', 'Ó', 'Ś', 'Ż', 'Ź'];
function OEMWrite(AnsiText : string) : string;
var
S, D : PChar;
begin
Result := '';
if AnsiText <> '' then
begin
S := PChar(AnsiText);
GetMem(D, Length(S));
AnsiToOEM(S, D);
Result := D;
end;
end;
var
TF : TexTFile;
X, Cnt : integer;
ALine, Asentence, AText : string;
begin
Cnt := 0;
AText := '';
AssignFile(TF, AFileName);
{$I-}
Reset(TF);
{$I+}
if IOResult = 0 then
begin
while not EOF(TF) do
begin
Readln(TF, ALine);
if ALine <> '' then
begin
AText := AText + ALine;
end;
end;
CloseFile(TF);
X := Pos(Separator, AText);
while X > 0 do
begin
ASentence := Copy(AText, 1, X);
if X <= Length(AText) then
begin
AText := Copy(AText, X + Length(Separator), Length(AText));
end;
repeat
if ASentence[1] in OKChars then
begin
Break;
end;
Delete(Asentence, 1, 1);
until Length(ASentence) = 0;
if ASentence <> '' then
begin
Cnt := Cnt + 1;
Writeln('Zdanie #', Cnt, ': ', OEMWrite(ASentence));
end;
X := Pos(Separator, AText);
end;
Writeln(OEMWrite('Ilość zdań w pliku: "'), AFileName, '" = ', Cnt);
end
else
begin
Writeln('Nie znaleziono pliku: "', AFileName, '"!');
end;
Readln;
end.
P.S.: program rozpatruje zdania oznajmujące, dla innych końcówek radź już sobie sam, jeżeli tego wymagać będzie wykładowca czy tam nauczyciel.