![]() |
|
|
Регистрация | << Правила форума >> | 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, то есть координата содержит три цифры. Как это исправить? |