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

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

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

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

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

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

есть массив от -90 до 90 с шагом 5.
Есть данные из файла где значениям X от -90 до 90 с шагом 1 присваивается значение Y.
Надо чтобы была проверка и если нет в исходном файле каких-либо значений X то значению Y для этого X присваивалось бы 0.
Просто проверку я знаю как делать, а вот как сделать чтобы добавлялась?
Dennikid вне форума Ответить с цитированием
Старый 01.10.2008, 17:37   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Есть данные из файла где значениям X от -90 до 90 с шагом 1 присваивается значение Y.
откуда берется значение Y ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2008, 17:41   #3
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

значение Y берется из другой программы и записывается в файл в виде:
-90 237
-89 2346
-88 2354
и т.д.
вот и надо отсюда выбрать данные с шагом 5 и если допустим нет
-90 237 или пропущено какое-нибудь значение в файле.
, то на выходе (в MEMO) должно выводиться -90 0 или соответственно ему.
Данные я выбираю, но не могу сделать проверку.

Последний раз редактировалось Dennikid; 01.10.2008 в 17:44.
Dennikid вне форума Ответить с цитированием
Старый 01.10.2008, 17:45   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ну и уш для полноты картины: какой разделитель между x и y в файле ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 01.10.2008, 17:49   #5
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

пробел. я же написал "выборку делаю" . надо сравнение
Dennikid вне форума Ответить с цитированием
Старый 01.10.2008, 18:24   #6
zhefran
Пользователь
 
Аватар для zhefran
 
Регистрация: 08.04.2008
Сообщений: 37
По умолчанию

Используй функции роботы со строками pos,copy,length.
zhefran вне форума Ответить с цитированием
Старый 02.10.2008, 09:50   #7
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

как их использовать? посмотрел помощь, а там ни слова о массиве. надо сравнение на присутствие числа из массива в исходных данных берущихся из файла и в случае отсутствия его там присвоить соответствуещему этому числу Y значения 0.

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

Код:
memo1.Clear;
x:=0;y:=0;tempx:=0;tempy:=0;
memo1.Lines.LoadFromFile('c:\in2.txt');
for i := 0 to memo1.Lines.Count-1 do
  begin
    if memo1.Lines[i]<>'' then
      begin
      if i>0 then
        begin
          tempx:=strtointdef(copy(memo1.Lines[i],1,pos(' ',memo1.Lines[i])-1),0);
          tempy:=strtointdef(copy(memo1.Lines[i],pos(' ',memo1.Lines[i])+1,length(
            memo1.Lines[i])-pos(' ',memo1.Lines[i])),0);
          if tempx-x>1 then
            for j := x+1 to tempx do
              begin
                inc(x);
                y:=0;
                    memo2.Lines.Add(inttostr(x)+' '+inttostr(y));
              end
          else
            begin
              y:=tempy;
              x:=tempx;
                  memo2.Lines.Add(inttostr(x)+' '+inttostr(y));
            end;
        end
      else
        begin
          x:=strtointdef(copy(memo1.Lines[i],1,pos(' ',memo1.Lines[i])-1),0);
          y:=strtointdef(copy(memo1.Lines[i],pos(' ',memo1.Lines[i])+1,length(
            memo1.Lines[i])-pos(' ',memo1.Lines[i])),0);
        end;
      end;
  end;
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 02.10.2008, 13:02   #9
Dennikid
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 39
По умолчанию

этот код не вводит проверку на присутствие. вот выложил файлы которые нужно обработать. из a-bez должно получиться a-nuzhno.
а Memo выводит из файла с первой строчки то есть -90 строка не выводится. и проверка её не идет(((
Вложения
Тип файла: txt а-bez.txt (3.7 Кб, 122 просмотров)
Тип файла: txt а-nuzhno.txt (774 байт, 122 просмотров)
Dennikid вне форума Ответить с цитированием
Старый 02.10.2008, 13:13   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

понял, а -90 это заданная граница, меняться не может ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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