![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
Все спасибо большое
|