Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

Помогите разобраться в преобразовании   Найти похожие ветки 

 
Юрий Зотов ©   (2009-07-04 23:41) [120]

> Zheksonz   (04.07.09 23:38) [118]

Скажите, что означает символ #  в записи #19#136 ?


 
Sha ©   (2009-07-04 23:48) [121]

Это просто числа, каждое размещено в одном байте, и они передаются друг за другом.
Вот также и 5000 - это просто число, размещенное в двух байтах, которые надо передать друг за другом.


 
Zheksonz   (2009-07-04 23:50) [122]


> Sha ©   (04.07.09 23:40) [119]
</I
> Юрий Зотов ©   (04.07.09 23:41) [120]

>
Вы как сговорившись задаёте мне вопрос, ответ на который я ищу в этом форуме, в этой теме ))) Поэтому и вопросом было как преобразовать 5000 в #19#136

Сам инвертор принимает 8 байт. для отправки этих 8 байт на COM порт я использую ф-цию ComPort.WriteStr(String_);

в переменную String_ я присваиваю не "#01#01#01#01#19#136#01#01", а
#01#01#01#01#19#136#01#01


 
Zheksonz   (2009-07-04 23:54) [123]

Sha ©   (04.07.09 23:48) [121]
оооооочень похоже на правду... а как отправлять число, размещенное в двух байтах, в строковую переменную???


 
Юрий Зотов ©   (2009-07-04 23:57) [124]

> Zheksonz   (04.07.09 23:50) [122]

> в переменную String_ я присваиваю не "#01#01#01#01#19#136#01#01",
> а #01#01#01#01#19#136#01#01

И правильно. В чем проблема-то?

Знак # означает "символ с кодом". То есть, запись #19#136 означает: последовательность из 2-х символов с кодами 19 и 136. Это будут 2 байта, в которых записаны числа 19 и 136. Именно так оно у Вас и формируется, все должно быть нормально.


 
Юрий Зотов ©   (2009-07-04 23:59) [125]

> Zheksonz   (04.07.09 23:54) [123]

> как отправлять число, размещенное в двух байтах,
> в строковую переменную???

Блин. Еще раз - функция WordToString2 в [4] для кого писана? Что она делает?


 
Sha ©   (2009-07-05 00:03) [126]

Там SetLength пропущен


 
Zheksonz   (2009-07-05 00:04) [127]


> Именно так оно у Вас и формируется, все должно быть нормально.

как мне к #01#01#01#01 прибавить #19#136 ??? а вернее как мне получить эти самые #19#136, а не 19136 или "#19#136" или #$13"€"???


 
Юрий Зотов ©   (2009-07-05 00:05) [128]

Короче:

var
 S: string;
=====
S := #01#06#00#04 + WordToString2(5000);
S := S + CRC16(S);
ComPort.WriteStr(S);

И если в протоколе Вы ничего не напутали, то все должно работать.


 
Юрий Зотов ©   (2009-07-05 00:07) [129]

> Sha ©   (05.07.09 00:03) [126]

Там короткая 2-х символьная строка.


 
Zheksonz   (2009-07-05 00:17) [130]


> Юрий Зотов ©   (05.07.09 00:05) [128]


Вот что получилось на выходе(((
#1#6#0#4#$13"€"#1#0#0#0#0#0#0#0#0#0#0#0#0#0#2#0#0#3#0#0#0#3#0#0#0#$16#0#0# 0#2#0#0#0"°Y&#152;"#0"dF&#152;"#0"Tц"#$12#0#0#0#0#0"p™G"#0"` &#152;"#0"lч"#$12#0"&аC"#0"°Y&#152;"#0"I^C"#0"Ёч"#$12#0"=_C"#0"°Y&#152;"#0"‹ЮC"# 0"Ёч"#$12#0"Ёч"#$12#0"°Y&#152;"#0#$1C


 
Германн ©   (2009-07-05 00:17) [131]


> Zheksonz   (04.07.09 22:11) [101]
>
> Германн ©   (04.07.09 21:58) [93]
> Опять на выходе пресловутые: #$13"€" но это не #19#136(((

А я то так старался! :(

P.S. Автор на форуме уже год, если не два или более. Уровень его базовых знаний за это время ничуть не изменился. Как был нулевой, так и остался. К советам по увеличению этого уровня, например путём чтения книжек, хотя бы для чайников, он остался глух. Объяснить что-то данному автору невозможно. Не потому, что он не хочет понимать, а потому, что невозможно объяснить слепому от рождения "что такое зрение". Тем более - "что такое цвет". Автору можно только либо указать на ошибку в его бредовом коде, либо дать код.  Исходя из этого я поставил пред собой задачу дать автору код, дабы прекратить захламление форума. При этом я исходил из следущего:
1. Код должен был выполнять именно "преобразование", как того и хотел автор.
2. Стиль кода должен был полностью соответствовать стилю автора, дабы выглядеть естественно в окружении строк кода самого автора.
3. Код должен был давать правильный результат.

Я то думал, что вполне нормально справился с поставленной пред собой задачей :(


 
Юрий Зотов ©   (2009-07-05 00:19) [132]

> Zheksonz   (05.07.09 00:17) [130]

На выходе чего?


 
Zheksonz   (2009-07-05 00:26) [133]


> Германн ©   (05.07.09 00:17) [131]

мда, и поспорить не с чем...


> Юрий Зотов ©   (05.07.09 00:19) [132]

сорри... лишнего мусора набросало...


 
Sha ©   (2009-07-05 00:36) [134]

> Юрий Зотов ©   (05.07.09 00:07) [129]
> Там короткая 2-х символьная строка.

Ну и что?
Попробуй выполнить это:


type
String2 = string[2];

function WordToString1(Value: word): String2;
begin
SetLength(Result,1);
Result[1] := Char(Value div 256);
end;

function WordToString2(Value: word): String2;
begin
Result[1] := Char(Value div 256);
Result[2] := Char(Value mod 256)
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s: String2;
begin
 s:=WordToString1($3231);
 s:=WordToString2($3231);
 ShowMessage(s);
end;


 
Anatoly Podgoretsky ©   (2009-07-05 00:38) [135]

> Юрий Зотов  (05.07.2009 00:19:12)  [132]

Может код в отладчике


 
Zheksonz   (2009-07-05 00:45) [136]

function WordToString2(Value: word): String2;
begin
Result[1] := Char(Value div 256);
Result[2] := Char(Value mod 256)
end;


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


 
Sha ©   (2009-07-05 00:49) [137]

После begin добавь такой оператор:
SetLength(Result,2);


 
Zheksonz   (2009-07-05 00:52) [138]

мужики, вы не сердитесь, ну туговат я в этих вопросах... я не собираюсь это оспаривать, зато когда нужно выйти и выступить перед толпой, с речью, мои коленки не трусятся и не заикаюсь... все же мы разные и всем нам что-то свойственно, а что-то нет...


 
Zheksonz   (2009-07-05 00:55) [139]

)))
смех и грех... на выходе Strn := Strn + WordToString2(UpDown1.Position);  всё те же #1#6#0#4#$13"€" //не вот и как я бы мог разобраться если даже у Вас нифига не получается уже столько времени??? по одному и тому же кругу ходим...


 
Германн ©   (2009-07-05 00:57) [140]


> Zheksonz   (05.07.09 00:52) [138]
>
> мужики, вы не сердитесь, ну туговат я в этих вопросах...
>  я не собираюсь это оспаривать

Ты в энный раз хочешь сказать, что ты не программист и не собираешься заниматься программированием? Мы уже знаем. Но зачем тогда ты вновь и вновь пытаешься программировать лезя на форум с вопросами? Если не хочешь, но интересно, так купи книжку для чайников и читай её хоть в траспорте.


 
Германн ©   (2009-07-05 00:59) [141]


> Zheksonz   (05.07.09 00:55) [139]
>
> )))
> смех и грех... на выходе Strn := Strn + WordToString2(UpDown1.
> Position);  всё те же #1#6#0#4#$13"€" //не вот и как я бы
> мог разобраться если даже у Вас нифига не получается уже
> столько времени??? по одному и тому же кругу ходим...

Лично я пас. Надоело.


 
Sha ©   (2009-07-05 01:00) [142]

> Zheksonz   (05.07.09 00:52) [138]
> выступить перед толпой, с речью

Хотелось бы речь заслушать, с ответом на вопрос [86]


 
Zheksonz   (2009-07-05 01:02) [143]

Германн ©   (05.07.09 00:59) [141]
ты пас, потому что ты так и не понял что нужно сделать и делаешь вид, что ты типа с ними, мастерами, не хочешь разбираться в этом вопросе... Но ИХ, не обманешь ;)


 
Zheksonz   (2009-07-05 01:12) [144]


> Sha ©   (05.07.09 01:00) [142]


в общем имеется инвертор - преобразователь частоты для электродвигателя. Управление частотником производится через COM порт. Формат запроса 8 байт, т.е. в этих восьми байтах зарыт весь формат отправляемой команды. Для простоты я использую компонент управления СOM портом, у которого есть функция ComPort.WriteStr(String_);

пример отправляемой строки:
String_ := #01#06#00#04#19#136 + crc16(String_); где #19#136 - это частота вращения двигателя(5000=50 герцам), вот в этом формате мне и нужно менять частоту, например на 4000 = #15#160


 
Германн ©   (2009-07-05 01:12) [145]


> Zheksonz   (05.07.09 01:02) [143]
>
> Германн ©   (05.07.09 00:59) [141]
> ты пас, потому что ты так и не понял что нужно сделать и
> делаешь вид, что ты типа с ними, мастерами, не хочешь разбираться
> в этом вопросе... Но ИХ, не обманешь ;)

Я не с ними. Я выше их :) Они лишь Мастера Дельфи, а я ПШП!
А то что "их" не обманешь - эт точно!

P.S. Ещё чуть-чуть и можно на уровень башорга перейти. :)


 
Sha ©   (2009-07-05 01:17) [146]

> Zheksonz   (05.07.09 01:12) [144]

Тогда непонятно, почему тебя не устраивает результат [139]?
Ведь он соответствует твоему описанию.


 
Zheksonz   (2009-07-05 01:25) [147]


> Германн ©   (05.07.09 01:12) [145]

думаю моя расшифровка ПШП тебе не понравится...

ты по существу хоть слово сказал??? Или может ты понял в чём суть вопроса??? а может ты сюда зашёл, чтобы поумничать???, ведь ветка-то для начинающих... Знаешь почему меня Юрий и Sha не послали ещё??? потому что я выполняю то что они говорят, а не спрашиваю куда begin поставить, но при этом результат отрицательный... Ты же просто "воду льёшь"... Я тут больше года, как ты правильно заметил, но за это время я не видел ни одного полезного совета от тебя... Да ты и правда ПШП )))


 
Sha ©   (2009-07-05 01:28) [148]

> Zheksonz   (05.07.09 01:25) [147]

А вот это ты напрасно.
Если ветку закроют, будут правы.


 
Zheksonz   (2009-07-05 01:31) [149]


> Sha ©   (05.07.09 01:17) [146]

перечитал ещё раз свой вопрос и скажу вам, что ничего не изменилось... всё так же нужно из, например, 5000 получить #19#136, каюсь, просто думал, что обозначение #nn#nn стандартно и имеет функцию преобразования из обычного числа в формат #nn#nn.


 
Германн ©   (2009-07-05 01:31) [150]


> Sha ©   (05.07.09 01:17) [146]
>
> > Zheksonz   (05.07.09 01:12) [144]
>
> Тогда непонятно, почему тебя не устраивает результат [139]?
>
> Ведь он соответствует твоему описанию.
>

Думаю гораздо проще написать эксперт IDE, который будет показывать содержимое строковой переменной строго и только в виде #xx#xx#xx...
Ничто другое автору не понравится. И он будет обвинять в этом нас.


 
Zheksonz   (2009-07-05 01:35) [151]

Sha ©   (05.07.09 01:28) [148]
ну так я тоже так думаю... оскорблять можно только новичков и тех, кто не так способен как мы любимые... я тоже пекаря какого-нибудь закрыл бы за то, что он вообще не представляет что такое шестнадцатиричная система...


 
Германн ©   (2009-07-05 01:36) [152]


> Sha ©   (05.07.09 01:28) [148]

И это будет скорее традицией, чем прецендетом :)


> Zheksonz   (05.07.09 01:31) [149]
>
>
> > Sha ©   (05.07.09 01:17) [146]
>
> перечитал ещё раз свой вопрос и скажу вам, что ничего не
> изменилось... всё так же нужно из, например, 5000 получить
> #19#136, каюсь, просто думал, что обозначение #nn#nn стандартно
> и имеет функцию преобразования из обычного числа в формат
> #nn#nn.
>

И всё также ты ничего как не понимал раньше, так и не понял. И без базовых знаний и не сможешь понять никогда.


 
Германн ©   (2009-07-05 01:39) [153]


> Германн ©   (05.07.09 01:36) [152]

Старею, блин.
Опять пропустил букву.

В четверг получу заказанные "очки для чтения".


 
Zheksonz   (2009-07-05 01:40) [154]

Германн ©   (05.07.09 01:31) [150]
Я уже давно получил "#19#136"... а мне нужно #19#136... вот и вся разница... те, кто говорил как это сделать все получили в итоге #$13"€" а я-то в чём не разобрался??? я все рекомендации проделывал с пониманием, просто они не дали желаемого результата... так давай же скажем всё, я пас и сошлёмся на то, что обучаемый цветам слеп???


 
Sha ©   (2009-07-05 01:44) [155]

> Zheksonz   (05.07.09 01:31) [149]
> нужно из, например, 5000 получить #19#136

Получили уже, и не один раз

> Германн ©   (05.07.09 01:31) [150]
> Думаю гораздо проще написать эксперт IDE...

Еще проще функцию

> Zheksonz   (05.07.09 01:35) [151]
> я тоже пекаря какого-нибудь закрыл бы за то, что он вообще не представляет что такое шестнадцатиричная система...

У нас не приветствуется использование ненормативной лексики, высказываний личного характера.

Я спать, жаль что не удалось досмотреть до конца.


 
Zheksonz   (2009-07-05 01:47) [156]


> Получили уже, и не один раз

спасибо за время которое Вы уделили, но результат себе в актив Вы записать не сможете... мне жаль не только потому, что я не узнал ответ на свой вопрос, а и потому, что я был уверен, что Вы это сможете сделать.


 
Германн ©   (2009-07-05 01:49) [157]


> Я спать, жаль что не удалось досмотреть до конца.
>

Будь спок. До конца ещё очень далеко. Если не в этой ветке так в других.
Сей жестянщик нас так просто не оставит.


 
Zheksonz   (2009-07-05 01:57) [158]

вот вы прикольные)))
я спросил, как, например, из 5000 получить #19#136 вы мне ответили #$13"€" и удивляетесь что мне ответ не подходит... мол я ничего не понимаю... если уж на то пошло, то как преобразовать #$13"€" в #19#136 ???

ну и в довершение о том, что же у вас приветствуется:

> У нас не приветствуется использование ненормативной лексики,
>  высказываний личного характера.
</
> Сей жестянщик нас так просто не оставит.

I>


 
Sha ©   (2009-07-05 01:57) [159]

> Zheksonz   (05.07.09 01:47) [156]

Ты не понял, что мы сделали то, что ты просил. Просто, возможно, ты просил не то что надо.
Можешь убедиться в этом при помощи функции, которая отображает любую строку в твоем фирменном формате.

function ZheksonzFormat(const s: string): string;
var
 i: integer;
begin;
 Result:="";
 for i:=1 to Length(s) do Result:=Result+"#"+IntToStr(ord(s[i]));
 end;


Теперь точно спать.


 
Zheksonz   (2009-07-05 02:01) [160]

я так понимаю на выходе будет "#19#136", а мне такая строка не нужна... мне нужно, чтобы строковая переменная была наполнена #19#136, а не "#19#136"... ну неужели не понятно???



Страницы: 1 2 3 4 5 6 вся ветка

Текущий архив: 2009.09.06;
Скачать: CL | DM;

Наверх




Память: 0.84 MB
Время: 0.026 c
15-1247085005
Юрий
2009-07-09 00:30
2009.09.06
С днем рождения ! 9 июля 2009 четверг


15-1246528418
DelphiN!
2009-07-02 13:53
2009.09.06
Определить замыкание 2х ножек com порта


15-1246881220
ford
2009-07-06 15:53
2009.09.06
скопировать заблокированный файл


15-1247149761
Дмитрий С
2009-07-09 18:29
2009.09.06
Как по английски "я сам себе сама" ?


2-1246777730
Dr. Genius
2009-07-05 11:08
2009.09.06
Захват текста из любого элемента на экране