|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Как считать многострочный текст из файла, цикл for
Что нужно добавить в процедуру, чтобы считывался многострочный файл и выводился на экран?
Код:
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. |