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