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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2008, 13:30   #11
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

для конкретного случая не может. просто нужна сама идея как сделать. а с другими случаями я разберусь.
Dennikid вне форума Ответить с цитированием
Старый 02.10.2008, 14:00   #12
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Ну если совсем грубо и не вдумываясь, то так:

Код:
var x,xo:array of integer;
y,yo:array of extended;
i,j,tempx:integer;
tempy:extended;
begin
memo1.Clear;
setlength(x,0);
setlength(y,0);
setlength(xo,0);
setlength(yo,0);
memo1.Lines.LoadFromFile('c:\а-bez.txt');
for i := 0 to memo1.Lines.Count-1 do
  begin
    tempx:=strtointdef(copy(memo1.Lines[i],1,pos(' ',memo1.Lines[i])-1),0);
    tempy:=strtofloatdef(copy(memo1.Lines[i],pos(' ',memo1.Lines[i])+1,length(
      memo1.Lines[i])-pos(' ',memo1.Lines[i])),0);
    if (tempx mod 5)=0 then
      begin
        setlength(x,length(x)+1);
        setlength(y,length(y)+1);
        x[length(x)-1]:=tempx;
        y[length(y)-1]:=tempy;
      end;
  end;
for i := 0 to length(x)-1 do
  begin
    if (i>0)and(abs(x[i]-x[i-1])>5) then
      begin
        for j := 0 to (abs(x[i]-x[i-1])div 5)-1 do
          begin
            setlength(xo,length(xo)+1);
            setlength(yo,length(yo)+1);
            xo[length(xo)-1]:=x[i-1]+(5*j);
            yo[length(yo)-1]:=0;
          end;
      end
    else
      begin
        if i>0 then
        begin
          setlength(xo,length(xo)+1);
          setlength(yo,length(yo)+1);
          xo[length(xo)-1]:=x[i];
          yo[length(yo)-1]:=y[i];
        end
        else
          if x[i]>-90 then
            begin
              for j := 0 to (abs((-90-x[i])div 5)-1) do
              begin
                setlength(xo,length(xo)+1);
                setlength(yo,length(yo)+1);
                xo[length(xo)-1]:=x[i]+(-5*(j+1));
                yo[length(yo)-1]:=0;
              end;
            end;
      end;
  end;
for i := 0 to length(xo)-1 do
  memo2.Lines.Add(inttostr(xo[i])+' '+floattostr(yo[i]));
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.10.2008, 14:09   #13
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

Спасибо, попробуем!
Dennikid вне форума Ответить с цитированием
Старый 02.10.2008, 14:38   #14
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

не совсем точно срабатывает. если в исходном файле. допустим не будет строки 75 то он 70 и 75 присваивает 0(((( будет дорабатывать. Но идея хороша.
Dennikid вне форума Ответить с цитированием
Старый 02.10.2008, 14:54   #15
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну это уш доработайте сами, сам алгоритм думаю ясен
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 03.10.2008, 09:25   #16
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
Радость

А вот вариант проще, сам придумал:

procedure TForm1.Button2Click(Sender: TObject);
var ugol: array[-90..90] of String;
a,s,d,i:integer;
begin
Memo1.Clear;
Memo2.Clear;
for a:=-90 to 90 do
ugol[a]:='0';
memo1.Lines.LoadFromFile('c:\а-bez.txt');
for i := 0 to memo1.Lines.Count-1 do
begin
s:=strtointdef(copy(memo1.Lines[i],1,pos(' ',memo1.Lines[i])-1),0);
ugol[s]:=copy(memo1.Lines[i],pos(' ',memo1.Lines[i])+1,length(
memo1.Lines[i])-pos(' ',memo1.Lines[i]));
end;
d:=-90;
while d<=90 do
begin
memo2.Lines.Add(inttostr(d)+' '+ugol[d]);
d:=d+5;
end;
end;
Dennikid вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка текста frayerok Общие вопросы Delphi 12 21.09.2008 21:44
Выборка по среднему Kip Microsoft Office Access 3 11.08.2008 21:56
переписать из массива в линейный двунаправленный список чётные элементы массива Black_Ak24 Помощь студентам 12 08.01.2008 00:44
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43