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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2012, 05:57   #51
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

скинь весь проект(без elements, у меня он есть)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2012, 06:01   #52
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Вот http://rghost.ru/41290822
nefakt вне форума Ответить с цитированием
Старый 02.11.2012, 06:13   #53
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  count, i: Integer;
  fFile:TFileStream;
begin
  if not OpenDialog1.Execute then exit;
 fFile := TFileStream.Create(OpenDialog1.FileName, (fmOpenRead));
     //открыли файл и начинаем читать
 fFile.Read(version,sizeof(version));//FS это поток наш
 if(version<>69) then //версия не та что мы ожидаем
  begin
   ShowMessage('Неправильная версия файла');
   fFile.Free;
   exit;
  end;
 fFile.Read(sign,sizeof(sign));//просто запомнить надо.
 //начинаем первый лист
 fFile.Read(List1.offsetdata[0],Length(List1.offsetdata));
 fFile.Read(count,sizeof(count));
 SetLength(List1.data,count);
 for i:=0 to count-1 do
  fFile.Read(List1.data[i],sizeof(TElList1Element));
 //начинаем чтение второго листа(добавил начиная отсюда)
 fFile.Read(count,sizeof(count));
 SetLength(List2.data,count);
 for i:=0 to count-1 do
  fFile.Read(List2.data[i],sizeof(TElList2Element));
 fFile.Free;
end;
и так, к каждому листу надо будет добавлять.

(у меня то в парсере на шарпе простр экспорт, без редактора+ у меня по конфигам)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2012, 06:26   #54
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Спасибо большое сейчас попробую=) а на счет .pck как я писал нужно .pck распаковать и в программе указывать путь до распакованной папки ?

и ещё как вот из исходного кода эти значений "float" писать правильно ? "int" идет как integer "unsigned int" тоже идет как я понял integer вот это "char file_model_right[128];
" как я понял писать так "file_model_right: array [0..128] of Char;" "string:128" писать как "str1: string" а вот как Float писать чет понять не могу

Последний раз редактировалось Stilet; 03.11.2012 в 10:10.
nefakt вне форума Ответить с цитированием
Старый 02.11.2012, 06:50   #55
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
и ещё как вот из исходного кода эти значений "float" писать правильно ? "int" идет как integer "unsigned int" тоже идет как я понял integer вот это "char file_model_right[128];
" как я понял писать так "file_model_right: array [0..128] of Char;" "string:128" писать как "str1: string" а вот как Float писать чет понять не могу
int = integer
unsigned int = LongWord;
char file_model_right[128] = file_model_right: array [0..127] of Char
string:128 = см выше
wstring:128 = array [0..63] of WideChar
float = single
double = double
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.11.2012, 09:08   #56
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Спасибо =)
Посмотри правильно написано
Код:
var i:integer;
s: string;
begin
 if ListBox1.ItemIndex>0 then
  begin
   i:=ListBox1.ItemIndex;
   Label1.Caption:=IntToStr(List^.data[i].id);
   Edit1.Text:=WideCharArToWideStr(List^.data[i].name);
   Edit2.Text:=WideCharArToWideStr(List^.data[i].str1);
   Edit3.Text:=WideCharArToWideStr(List^.data[i].str2);
   Edit4.Text:=FloatToStr(List^.data[i].str3);
   Edit5.Text:=FloatToStr(List^.data[i].str4);
   Edit2.Text:=FloatToStr(List^.data[i].str5);
   Edit3.Text:=FloatToStr(List^.data[i].str6);
   Edit4.Text:=FloatToStr(List^.data[i].str7);
   Edit5.Text:=FloatToStr(List^.data[i].str8);
   Edit4.Text:=FloatToStr(List^.data[i].str9);
   Edit5.Text:=IntToStr(List^.data[i].int1);
.
Код:
TElList3Element=record
 id:integer;
 name: array [0..32] of WideChar;
 str1: array [0..127] of Char;
 str2: array [0..127] of Char;
 str3: single;
 str4: single;
 str5: single;
 str6: single;
 str7: single;
 str8: single;
 str9: single;
 int1: integer;
end;
просто при открытии
вот так показывает хотя все расписал вроде правильно


А и ещё я заметил на первом листе и на втором самый первый итем не показывает свой id и доп статы все работать начинает со второго итема и дальше

Последний раз редактировалось nefakt; 02.11.2012 в 09:19.
nefakt вне форума Ответить с цитированием
Старый 03.11.2012, 13:26   #57
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Все с итемами разобрался но вот с третьей страницей так и не смог, не понимаю почему он так криво считывает лист.
nefakt вне форума Ответить с цитированием
Старый 03.11.2012, 19:04   #58
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

первыц массив должен быть array[0..31] of WideChar.
array of char не нужно через процедуру прогонять.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2012, 19:28   #59
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

С этим я уже разобрался. Я хотел узнать как сохранение сделать? И как добавить функцию копирование определенного итема в ListBox`е и поиск по ID или имени?!
nefakt вне форума Ответить с цитированием
Старый 03.11.2012, 19:46   #60
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сохранение чего и куда?

поиск просто проходить циклом и сравнивать
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных chipesca Microsoft Office Excel 0 25.05.2012 01:14
Обработка данных grichanuk Microsoft Office Excel 2 20.06.2011 12:36
Обработка данных Мигель Microsoft Office Excel 11 16.04.2011 16:47
Обработка данных из БД andozag C/C++ Базы данных 1 24.03.2011 23:38
Обработка данных beztrud БД в Delphi 1 11.03.2011 21:49