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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2010, 18:23   #11
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
ATI1


35228701******

OK
Цитата:
ATI2


V 04.20
18-06-07
RM-165
(c) Nokia

OK
вот реально
fize вне форума Ответить с цитированием
Старый 06.01.2010, 18:39   #12
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

тут вижу 2 варианта:

1- т.к. формат ответа на команду-2 постоянен, то для нее парсить свои строки
2- изменить в парсере (1) пару строк, в частности добавить проверку на пустую строку и парсить до следующей пустой строки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.01.2010, 18:47   #13
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

raxp может всетаки преобразовывать ответ на 2 команду в одну строку? и парсить проще будет. и более удобно читаемо
fize вне форума Ответить с цитированием
Старый 06.01.2010, 18:57   #14
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

fize, это уже вам решать как будет удобнее... вот вам еще вариант независящий от кол-ва строк в результате:
Код:
var t: tstringlist;
    s: string;
    i: integer;
begin
 t:= tstringlist.create; // 3- ñïîñîá
 t.DelimitedText:= memo1.Lines.Text;

 s:= '';
 for i:= 1 to t.Count-2 do s:= s + t[i] + ' ';
 t.Free;

 memo2.Lines.Text:= s
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.01.2010, 20:17   #15
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Код:
procedure TForm1.BComPort1RxChar(Sender: TObject; Count: Integer);
var
 t:tstringlist;
 s,s1:string;
 a:array[1..255] of Byte;
 i,i1:integer;
begin
 BComPort1.Read(a, count);
for i:=1 to Count do s:=s+Chr(a[i]);
 t:= tstringlist.create;
 t.DelimitedText:= s;
 s1:= '';
 for i1:= 1 to t.Count-1 do s1:= s1 + t[i1] + ' ';
 t.Free;
 memo1.lines.add (s1);
end;
выводит не полные данные. например imei вообще не выводит. где ошибся?
fize вне форума Ответить с цитированием
Старый 06.01.2010, 20:35   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...ну а подумать?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.01.2010, 20:38   #17
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...ну а подумать?
честное слово сидел думал. но так и не придумал потому пришлось помощи просить. меня всегда смущают строки вида +1 -2 и т.п.
вот как я представляю работу этого кода-
BComPort1.Read(a, count); читаем из компонента
for i:=1 to Count do s:=s+Chr(a[i]); преобразуем (в s читаемая информация)
t:= tstringlist.create; очищаем стринглист
t.DelimitedText:= s; это х.з
s1:= ''; это примерно догадываюсь
for i1:= 1 to t.Count-1 do s1:= s1 + t[i1] + ' '; это сам парсинг
t.Free;
memo1.lines.add (s1); выводим в мемо

Последний раз редактировалось fize; 06.01.2010 в 20:44.
fize вне форума Ответить с цитированием
Старый 06.01.2010, 20:45   #18
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну, а как насчет самого первого парсера?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 06.01.2010, 20:49   #19
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
ну, а как насчет самого первого парсера?
for i:=1 to Count do s:=s+Chr(a[i]);
for i1:= 1 to t.Count-1 do s1:= s1 + t[i1] + ' ';
вот я и думаю может из-за того что Count ?
fize вне форума Ответить с цитированием
Старый 06.01.2010, 21:36   #20
fize
Форумчанин
 
Регистрация: 24.11.2009
Сообщений: 155
По умолчанию

подскажите
fize вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi работа со строками tanek Помощь студентам 7 13.10.2009 15:05
Работа со строками.(Delphi) SfSpawN Помощь студентам 1 09.06.2009 18:13
Работа со строками. Delphi сер4ей Помощь студентам 1 09.03.2009 23:22
Работа со строками. Delphi defeat Помощь студентам 4 10.01.2008 13:39