Здравствуйте! Нужно считать из .dat файла данные (координаты точек). Данные в файле представлены в следующем виде:
2 5 3 3 3 3 7 3
1 10 10
2 95 95
3 10 80
4 10 70
5 40 70
6 40 90
7 35 90
8 35 80
9 15 20
Первую строчку не трогаем, первую строчку считываем в отдельный массив [inf]. Все что ниже первой строчки записываем в массив целых чисел [cities].
Код:
procedure ReadNodes();
begin
list:= TStringlist.Create;
list.LoadFromFile('c:\nodes.dat');
i:=0;
str:= List.Strings[i]; //нулевая строка - информация о препятствиях
j:=1;
Inf[j]:=Strtoint(Copy(str,j,1));
for i:=1 to NK-1 do
begin
j:=j+2;
inf[i+1]:=Strtoint(Copy(str,j,1));
end;
for i := 1 to List.Count - 1 do
begin
if i>9 then
begin
str:= List.Strings[i];
from:= Strtoint(Copy(str,1,2));
cities[from].x:=Strtoint(Copy(str,4,2));
cities[from].y:=Strtoint(Copy(str,7,2));
end
else
begin
str:= List.Strings[i];
from:= Strtoint(Copy(str,1,1));
cities[from].x:=Strtoint(Copy(str,3,2));
cities[from].y:=Strtoint(Copy(str,6,2));
end;
end;
end;
Функция не работает, если координаты точки больше 99, то есть координата содержит три цифры. Как это исправить?