|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Не читает первое слово.
Вот такой вот код загоняет в массив из записей
Код:
type Bylet = record No:string[12]; Reys:string[12]; Data:string[12]; FIO:string end; Проблема в том что все No:string[12]; остаются пустыми. И может заодно скажите как указатель в файле вернуть в начало или методы определения количества строк файла без ридлни счетчика) Код:
procedure TForm1.Button4Click(Sender: TObject); begin fname:=Label6.Caption+'\'+Edit6.Text; AssignFile(f, fname); Reset(f); while not EOF(f) do begin I:=i+1; readln(f,s); end; SetLength(rec,i); I:=0; CloseFile(f); AssignFile(f, fname); Reset(f); while not EOF(f) do begin Readln(f,s); for I := 0 to (length(s)) do begin if s[i]<>' ' then Begin case j of 0:rec[k].No:=rec[k].No+s[i]; 1:rec[k].Reys:=rec[k].Reys+s[i]; 2:rec[k].Data:=rec[k].Data+s[i]; 3:rec[k].FIO:=rec[k].FIO+s[i]; end end else J:=j+1; end; k:=k+1; i:=0; j:=0; buf[0]:=''; buf[1]:=''; buf[2]:=''; buf[3]:=''; end; |
#2
|
|||
|
|||
Извините
сразу типы укажу Код:
rec: array of Bylet; buf: array[0..3] of string; f: text; fname,s,c:string; i,j,k:integer; |
#3
|
||||
|
||||
Цитата:
|
#4
|
|||
|
|||
Именно так.
покопался дебагером и обнаружил что он пихает в rec[k].No до значения символ #0(#0'121') что есть конец строки но читает он с начала и откуда этот символ берется просто не понимаю . Последний раз редактировалось Tovarisch, 19.03.2008 в 12:33. |
#5
|
||||
|
||||
Потому что у тебя в цикле I считается от нуля, а нумерация символов в сроке идет с 1.
|
#6
|
|||
|
|||
Все спасибо большое
|