![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Что нужно добавить в процедуру, чтобы считывался многострочный файл и выводился на экран?
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
fin:TextFile;
begin
if OpenDialog1.Execute then
begin
AssignFile(fin,OpenDialog1.FileName);
Reset(fin);
while not eof(fin) do
begin
readln(fin,st);
end;
Label1.Caption:=st;
end;
end;Далее в веденных из файла строках нахожу слова, начинающиеся с прописной буквы а и выписываю их. Как сделать так, чтобы после того, как я выписал слово, цикл продолжал работу, пропуская его? Зачем лишний раз проверять слово? Код:
procedure resh(var st:string);
var
i,j:integer;
st2:string;
begin
for i:=1 to length(st) do
begin
if st[i]='А' then
begin
j:=i;
st2:=' ';
while st[j]<>' ' do
begin
st2:=st2+st[j];
inc(j);
end;Вот пример файла: у Маши было две собаки Апрель был теплым Федя не сделал уроки люди ждали поезда Апельсин большой |
|
#2
|
||||
|
||||
|
Вот тебе универсальная функция, которая возвратит набор слов, которые начинаются с указанного символа:
Код:
function GetWords(aSource: String; aSymbol: Char): TStringList;
var
SL: TStringList;
I: LongWord;
begin
SL := TStringList.Create;
with SL do
begin
LoadFromFile(aSource);
Delimiter := ' ';
DelimitedText := Text;
for I := Count - 1 downto 0 do
if Copy(SL[i], 1, 1) <> aSymbol then
Delete(I);
end;
Result := SL;
end;Код:
procedure TForm2.Button1Click(Sender: TObject);
var
I: LongWord;
SL: TStringList;
begin
Memo1.Clear;
SL := GetWords('Test.txt', 'А');
for I := 0 to SL.Count - 1 do
Memo1.Lines.Add(SL[i]);
SL.Free;
end;Последний раз редактировалось Kailon, 22.03.2016 в 00:06. |