Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2013, 12:22   #1
stalker1995s
Gamedeveloper
Форумчанин
 
Аватар для stalker1995s
 
Регистрация: 11.07.2012
Сообщений: 149
Смущение Обработка текстовых данных, ошибка

Здравия, столкнулся с проблемой, сам справиться не могу..
Программа, загружает данных из файла .smd Вершины, полигоны, их координаты..
Но все почти все данных, приходят в таком виде: 0.00000000000000E+0000
Хотя приходить должны в таком виде: -3.06128692626953E+0000
Т.е, каким то образом, программа записывает одни нули, вместо правильных значений.
Код каким я обрабатываю:

Код:
procedure TAnim.LoadModel(Filename: String);
var f:text;
    s:string;
    i,j:integer;
begin
assignFile(f,Filename);
reset(f);

repeat
 readln(f,s);
until s='nodes';

i:=0;
setlength(Link,i);

repeat
 readln(f,s);
 if s<>'end' then
  begin
   setlength(Link,i+1);
   Link[i]:=StrToInt(StringWordGet (s, '"', 3));
   inc(i);
  end;
until s='end';

repeat
 readln(f,s);
until s='time 0';

i:=0;
setlength(Time.Translation,i);
setlength(Time.Rotation,i);


repeat
 readln(f,s);
 if s<>'end' then
  begin
   setlength(Time.Translation,i+1);
   setlength(Time.Rotation,i+1);
   Time.Translation[i][0]:=strtofloatdef(StringWordGet(trim(s),' ',2),0);
   Time.Translation[i][1]:=strtofloatdef(StringWordGet(trim(s),' ',3),0);
   Time.Translation[i][2]:=strtofloatdef(StringWordGet(trim(s),' ',4),0);
   Time.Rotation[i][0]:=strtofloatdef(StringWordGet(trim(s),' ',5),0);
   Time.Rotation[i][1]:=strtofloatdef(StringWordGet(trim(s),' ',6),0);
   Time.Rotation[i][2]:=strtofloatdef(StringWordGet(trim(s),' ',7),0);
   inc(i);
  end;
until s='end';

repeat
 readln(f,s);
until s='triangles';

i:=0;
setlength(Poligon,i);

repeat
 readln(f,s);

 if s<>'end' then
  begin
   setlength(poligon,i+1);
   poligon[i].Texture:=s;
   for j:=0 to 2 do
    begin

     readln(f,s);
     Poligon[i].Top[j].Joint:= strToInt(StringWordGet(trim(s),' ',1));
     Poligon[i].Top[j].Coord[0]:= strtofloatdef(StringWordGet(trim(s),' ',2),0);
     Poligon[i].Top[j].Coord[1]:= strtofloatdef(StringWordGet(trim(s),' ',3),0);
     Poligon[i].Top[j].Coord[2]:= strtofloatdef(StringWordGet(trim(s),' ',4),0);
     Poligon[i].Top[j].Normal[0]:= strtofloatdef(StringWordGet(trim(s),' ',5),0);
     Poligon[i].Top[j].Normal[1]:= strtofloatdef(StringWordGet(trim(s),' ',6),0);
     Poligon[i].Top[j].Normal[2]:= strtofloatdef(StringWordGet(trim(s),' ',7),0);
     Poligon[i].Top[j].TexturCoord[0]:= strtofloatdef(StringWordGet(trim(s),' ',8),0);
     Poligon[i].Top[j].TexturCoord[1]:= strtofloatdef(StringWordGet(trim(s),' ',9),0);
    end;
   inc(i);
  end;
until s='end';

closeFile(f);
end;
Замечу, что обработка данных для Time.Translation и Time.Rotation выходит как надо, и данные на выходе правильные.
Так же после некоторых тестов, если убрать обработу

Код:
   Time.Translation[i][0]:=strtofloatdef(StringWordGet(trim(s),' ',2),0);
   Time.Translation[i][1]:=strtofloatdef(StringWordGet(trim(s),' ',3),0);
   Time.Translation[i][2]:=strtofloatdef(StringWordGet(trim(s),' ',4),0);
   Time.Rotation[i][0]:=strtofloatdef(StringWordGet(trim(s),' ',5),0);
   Time.Rotation[i][1]:=strtofloatdef(StringWordGet(trim(s),' ',6),0);
   Time.Rotation[i][2]:=strtofloatdef(StringWordGet(trim(s),' ',7),0);
То все данных, полигона, выходят правильно, почему же так, и что делать ?...
Так же, в программе до этого, все работало отлично, загружалось как надо.




________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не надо использовать тег ЦИТАТА для оформления кода!

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 17.08.2013 в 13:06.
stalker1995s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка текстовых данных Lena0000 Паскаль, Turbo Pascal, PascalABC.NET 0 30.05.2011 20:58
обработка текстовых данных Delphi Яська Помощь студентам 5 25.11.2010 20:27
Обработка большого кол-ва текстовых данных (Excel 2010) motorway Microsoft Office Excel 9 27.03.2010 00:47
Обработка символьных данных и текстовых файлов Skrip Общие вопросы C/C++ 7 17.06.2009 21:54
Обработка символьных данных и текстовых файлов Skrip Общие вопросы C/C++ 13 10.06.2009 20:51