Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.03.01;
Скачать: [xml.tar.bz2];

Вниз

как обработать полученные данные и вывести их в Label   Найти похожие ветки 

 
Семён   (2014-01-28 22:18) [0]

Проблема в следующем: написал программку, для считывания данных из бинарного файла, данные успешно считываются, но так как данных в одной ячейки могут быть несколько, а определённому значению соответствует определённая деталь, то надо от полученных данных(какой на данный момент находится в файле) преобразовать в деталь и вывести в Label.
Пример: считанные данные №1  $2421 = " Dvigatel-s" ; № 2 $2С29= " forsynca-F";, №3 $ A0AD=" не определённая деталь";
Вобщем ни как не могу построить условие, чтоб при сверки считанных данных в Label выводились не числа а слова( название детали).
Программа в Дельфи7 написана, на ней и пишу.

вод код по которому считываю данные по определённому адрессу в файле:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var Stream: TFileStream;
a: array [0..1023] of Byte;

begin

if OpenDialog1  Execute then
begin
Stream.Position:=$1F0;
stream.Read(a,2);
Label41.Caption:=IntToHex(a[0],2)+IntToHex(a[1],2);
end;
Stream.Free;
end
end;
end;

В общем по этому коду получается :2421, 2С29, ADAD, так и выводятся в Label, а надо чтоб если данные в ячейки соответствуют 2421, то в Label выводим что это: двигатель -мм, если 2C29, то это свеча -рр,  если ADAD, то это :фильтр-км....
Не получается построить условие которое бы обрабатывало данные и выводила готовый результат в Label.
Мозг весь вынес себе, на кране нервного срыва.
Прошу помощи у опытных профи.
Спасибо!!!


 
Jeer ©   (2014-01-28 22:38) [1]

А нам он нужен, нервный срыв?
При таком-то способе изложения?

Разделителем является ;
Если есть что-то после = и до разделителя, то за исключением кавычек считать наименованием.


 
Семён   (2014-01-28 23:24) [2]

приношу извенения вот весь код, тот в спешке в ручную писал по памяти, опыт очень маленький, только начинаю, вот и дал маху
вот полный код:

procedure TForm1.SpeedButton1Click(Sender: TObject);
var Stream: TFileStream;
a: array [0..1023] of Byte;
begin
 with OpenDialog1 do
if Execute then
begin
Stream:=TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite or fmShareDenyNone);
Stream.Position:=$1F0;
stream.Read(a,2);
Label1.Caption:=IntToHex(a[0],2)+IntToHex(a[1],2);
end;
Stream.Free;
end ;

end.


 
Семён   (2014-01-28 23:34) [3]

В прогу выводится значение: 2421, A0A0,2C29 а как реалезовать обработку этих данных и чтоб заместо этих цифр было название детали.
Понимаю что надо условие построить ведь в одном файле на этой позиции могут быть разные значения, зависит от запчасти, поэтому и условие надо, если одно значение, значит это Двигатель, если другое значение свеча и.т.д
Прошива одна , а значения в ней могут быть разные, для разных моделей.


 
Плохиш ©   (2014-01-29 00:34) [4]

if <считанные цыфири> = <требуемые цыфири> then Label1.Caption := "требуемая деталюха";


 
Семён   (2014-01-29 01:50) [5]

В том то и вопрос, что считанные циферки известны это либо: $2421, либо может в этой же прошивке, быть : $A0A0, либо $2C29 под этими циферками и скрывается деталь, соответственно либо на один модуль зашиваеться, либо на второй, либо на третий, если в модуль зашить прошиву, не для той деталюхи, то он работать не будет. Поэтому и возникла не обходимость в написании  простой программки, которая бы считав данные с ячейки вывела бы их в Label и было бы известно на какой модуль можно её зашить, а на какой она не пойдёт и надо искать в базе прошиву соответствующую данным относящихся только к ней. Если проще, то если байты не совпадут то работать не будет.
Поэтому как можно поставить требуемые циферки, если требуемые известны , а других нет.... В том то вся и фишка чтоб загнать в прогу и она показала по считанным данным к какой деталюшке эта прошива.

А значит условие надо каким то образом строить между этими известными данными, их всего три. А вот как построить условия чтоб между тремя проверила и выдала результат уже в названии детальке.
И куда в моём коде вставлять это условие??? я только начал программированием заниматься и ещё намёки не понимаю, если можно то пример конкретный. А то я настроил условий прога перестала считанные циферки выводить, еле назад откатил.


 
Семён   (2014-01-29 03:18) [6]

Нет Плохиш не выходит! я сегодня пробывал подобное, но что то не так...

Вот первый код :
begin
if ($2421) =($2421) then
begin
Label1.Caption := "Dvigatel";
end
else
if ($2C29) = ($2C29) then
begin
Label1.Caption := "Detalis";
end
else
if ($A0A0)= ($A0A0) then
begin
  Label1.Caption := "svetsa";
end;
end;
end;

компилируется программа, начинаю проверять на 3 разных прошивах, естественно с разными данными, клинит на первой позиции и всё тут на :"Dvigatel" и при загрузке другой прошивы  значение не меняеться, все три разных прошивы, а данные выводит одни "Dvigatel".

второй код:
тоже компилируется но прогу теперь клинит на последнем значении " svetsa"
Всё тоже самое три разных прошивы, а выдаёт последнее значение и всё тут.
Среднее значение вообще не выводит хотя данную прошиву загружаю.
Явно либо касяк в коде, либо три условия не проверяет, а надо три.
Даже не знаю что ещё попробывать, при других вариантах не компилируется и постоянно ошибки.
Да условия ставлю после :
begin
Stream:=TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite or fmShareDenyNone);
Stream.Position:=$1F0;
stream.Read(a,2);
Label1.Caption:=IntToHex(a[0],2)+IntToHex(a[1],2);


 
Семён   (2014-01-29 03:23) [7]

второй код тоже глухо клинит на последней позиции

begin
if ($2421) =($2421) then Label1.Caption := "Dvigatel";
begin
if ($2C29) = ($2C29) then  Label1.Caption := "Detalis";
begin
if ($A0A0)= ($A0A0) then Label1.Caption := "Svetsa";
end

end;
end;
end;


 
clickmaker ©   (2014-01-29 08:59) [8]

> if ($2421) =($2421)

похоже, нервный срыв таки произошел...


 
brother ©   (2014-01-29 10:18) [9]

O_о Только не мой мозг!
зы. сам то понял, что накодил?


 
Вова   (2014-01-29 13:47) [10]

Выложи файл, который хочешь читать.
Ты пробовал этот файл открывать текстовым редактором, если да - то что видишь там? А HEX-редактором? Или тебе точно известно, как располагаются данные?


 
Семён   (2014-01-29 15:00) [11]

Удалено модератором


 
Palladin ©   (2014-01-29 15:30) [12]

http://delphimaster.net/view/16-1208434700/


 
Вова   (2014-01-29 15:31) [13]

Воспользуйся любым файлообменником, а здесь дай на него ссылку.
Как ты определил, что файл бинарный?
Твои названия частей располагаются строго по определённым адресам или они присвоенны каким-то полям? Эти названия деталей в строковом формате или там какой-нибудь ID код детали?

Короче: нужно сначала выяснить, как хранятся данные в файле, а вытащить их оттуда уже не проблема.


 
Семён   (2014-01-29 18:45) [14]

Удалено модератором


 
brother ©   (2014-01-29 19:16) [15]

> самые гнилые профессии это программисты

хамим?


 
изыди   (2014-01-29 19:18) [16]

Вы, дорогой товарищ, не можете еще работать, т.к. с таким уровнем знания русского языка из школы не выпускают. И не надо тут на слабо нас брать, чай не мальчики. Если вы взялись за программирование, то будьте добры изучить основы, а то ваше if ($2421) =($2421) выглядит более чем странно. А если вы этого не понимаете, то не надо оно вам вообще и лучше заплатите денег профессианалу, чтобы он сделал вам эту работу.


 
clickmaker ©   (2014-01-29 19:19) [17]

бинарный поток сознания какой-то...


 
Плохиш ©   (2014-01-29 19:43) [18]


> Чтоб написать маленькую программулинку в несколько строк,
>  изучать тома по большей степени не нужной и не отвечающей
>  реальному обучению  информации которая есть в книжках многочисленных
> авторов , по крайней мери с головой крепко надо не дружить,
>

Усё понятно. Найми программиста.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.03.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.003 c
4-1270993601
oxothuk
2010-04-11 17:46
2015.03.01
ввод вывод COM


2-1391056706
Fransuz_F
2014-01-30 08:38
2015.03.01
Решение задачи(


2-1390933133
Семён
2014-01-28 22:18
2015.03.01
как обработать полученные данные и вывести их в Label


15-1403526910
Дмитрий СС
2014-06-23 16:35
2015.03.01
VPN сервер


11-1256294410
Валера
2009-10-23 14:40
2015.03.01
Есть ли парсер XML на KOL ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский