|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
прочитать из файла строки от А до Б
Код:
for i:=А to Б do for a:=1 to I do readln(Tanek,html); end ShowMessage(html); |
#2
|
||||
|
||||
Самый легкий вариант - загрузить все в TStringList.
Код:
var s: TStringList; i: integer; A, B: Integer; begin s:=TStringList.Create; S.LoadFromFile('file.txt'); A := Pos('А', S.Text); B := Pos('Б', S.Text); for i:=A to B do ... S.Free; end; Помогаю за Спасибо |
#3
|
||||
|
||||
нет там 12мб так что не вариант
ну так Код:
for a:=1 to I do readln(Tanek,html); же можно прочитать строку I неужели нельзя никак сделать и чтобы от А до Б |
#4
|
||||
|
||||
Не как если это текстовый файл. Надо прочитать весь файл, а потом уже выдирать то, что тебе надо. Или еще вариант: читать все строки подряд, не сохраняя их не куда (просто readln), пока не встретишь "А". Как встретил - начинать читать дальше, только записывать все в переменную. И только встречается символ "Б" - останавливаешь цикл.
Помогаю за Спасибо |
#5
|
||||
|
||||
Загрузить в стринг лист, сделать сортировку, а дальше как в ответе выше.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
||||
|
||||
v1s2222 можете привести собственно пример
Цитата:
|
#7
|
||||
|
||||
M.A.D.M.A.N. не вариант, жрет +24мб памяти если грузить в стринг лист
|
#8
|
|||
|
|||
Читай построчно через textFile, когда появится что-то отличное от A и Б - выбрасывай:
Код:
var F : TextFile; L : TStringList; S : String; begin L := TStringList.Create; Try AssignFile(F,'c:\myfile.txt'); Reset(F); While Not EOF(F) Do Begin ReadLn(F,S); If S <> '' Then If S[1] In ['А','Б','а','б'] Then // Заглавные и нет. L.Add(S) End; CloseFile(F); Finally L.Free; End; end; Как-то так. |
#9
|
||||
|
||||
Код:
var i: integer; s, buf: string; b: Boolean; label x; begin b := false; s:=''; ... (assign, reset и т.д.) while(not(EOF(F)) do begin ReadLn(F, buf); for i:=1 to length(buf) do begin if(buf[i] = 'А') then b:=true; if(b) then S:=S+buf[i]; if(buf[i] = 'Б') then goto x; end; end; x: showmessage(s); Помогаю за Спасибо |
#10
|
||||
|
||||
не так поняли А и Б это номера строк
|
#11
|
||||
|
||||
Ну значит не так объяснили. Если использовать типизированные файлы - то функция seek переместит вас куда нужно.
http://www.delphibasics.ru/Seek.php Помогаю за Спасибо |
#12
|
||||
|
||||
тогда файл txt как объявить
Tanek: File of ???; |
#13
|
||||
|
||||
Код:
F: TextFile; Помогаю за Спасибо |
#14
|
||||
|
||||
не, тогда Seek(Tanek,3); не работает
|
#15
|
||||
|
||||
Значит seek для типизированных файлов.
Тогда например так: Код:
F: File of Integer; Помогаю за Спасибо |