-
Постов
8 -
Зарегистрирован
-
Посещение
Весь контент Sergey Babichev
-
Коллеги, не подскажете, как из xe7 получить sha1 для Google Map service? Эклипс его сам генерит в настройках проекта. В xe7 я не нашел где его получить.
-
function TranslitStr(s:string) : string; const Rus = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; Eng = 'abcdefghijklmnopqrstuvwxyz~|@#$%&ABCDEFGHIJKLMNOPQRSTUVWXYZ{}[]?><'; var i,j : integer; c : char; begin Result := UTF8Encode(WideString(s)); end; UnTranslitStr на клиенте сейчас не делает ничего
-
Код сервера else if cmd = 'trafic' then begin DM.qPSI_TraficTest.ParamByName('stock').AsString := sl[3]; DM.qPSI_TraficTest.Open; while not DM.qPSI_TraficTest.Eof do begin responce := '*' + DM.qPSI_TraficTest.FieldByName('id').AsString+'*'+ TranslitStr(DecodeEventName(DM.qPSI_TraficTest.FieldByName('A_EVENT').AsInteger))+'*'+ TranslitStr(DM.qPSI_TraficTest.FieldByName('test').AsString)+'*'+ DM.qPSI_TraficTest.FieldByName('A_COUNT').AsString+'*'+ TranslitStr(DM.qPSI_TraficTest.FieldByName('zn').AsString)+'*'+ #$0d#$0a; OutputReport(responce); ClientSocket.SendText(responce); DM.qPSI_TraficTest.Next; end; DM.qPSI_TraficTest.Close; ClientSocket.SendText('EOF'+#$0d#$0a); ClientSocket.Disconnect(ClientSocket.Handle); end; Код клиента procedure TfRes.GetDetailTraffic(stk: string); var cmd,s : string; cnt : integer; begin if not Assigned(CurrServer) then Exit; cmd := '*'+imei+'*trafic*'+stk+'*'; cnt := 0; idCl.Host := IP; idCl.Port := StrToInt(CurrServer.port); idCl.Disconnect; while idCl.Connected do ; try ad.Show; idCl.Connect(); if idCl.Connected then begin idCl.Socket.Write(cmd); ad.Hide; pd.Show; repeat Sl.Clear; if not idCl.Connected then break; s := idCl.Socket.ReadLnWait(3,IndyTextEncoding_UTF8); if idCl.Socket.ReadLnTimedout then Exit; Inc(cnt); pd.Message := 'Получено '+IntToStr(cnt)+' записей'; // pd.Message := s; if s <> 'EOF' then begin RE.Subject := s; RE.Split(SL,0); if Sl.Count > 1 then begin AddTr(SL[1],UnTranslitStr(SL[2]),SL[4],UnTranslitStr(SL[3]),UntranslitStr(SL[5])); end; end; until s = 'EOF'; end; finally idCl.Disconnect; while idCl.Connected do ; ad.Hide; pd.Hide; end; end; Скриншоты сервера и клиента
-
'*356495042155004* '#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd' '#$fffd#$fffd#$fffd' '#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd' '#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd#$fffd'*-40*2*H7041300945*' Вот что приходит в Инди А сервер отправляет это: *356495042155004* Таймер при включенном зажигании*-40*2*H7041300945* И то и то в UTF-8. Должно быть во всяком случае.
-
Коллеги, подскажите, как связать заголовки столбцов у THeader с соответствующими колонками в TStringGrid? Сетка не умещается в экран по ширине и скроллируется а Header стоит на месте. Если использовать свойство Header у колонок вместо THeader а, то длинный заголовок в них не влезает. Есть способ задать ему форматирование - перенос по словам, выравнивание по центру?
-
Уважаемые коллеги! Никак не получается прочитать из клиента русский текст. Читается что-то вроде #fff8. Вышел из положения, написав две функции: function TranslitStr(s:string) : string; const Rus = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; Eng = 'abcdefghijklmnopqrstuvwxyz~!@#$%&ABCDEFGHIJKLMNOPQRSTUVWXYZ()_+?><'; var i,j : integer; c : char; begin Result := ''; for i := 0 to length(s)-1 do begin c := s.Chars[i]; if isLetter(c) then begin j := pos(c,Rus); if j > 0 then c := Eng[j]; end; Result := Result + c; end; end; и обратную к ней. function UnTranslitStr(s:string) : string; const Rus = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'; Eng = 'abcdefghijklmnopqrstuvwxyz~!@#$%&ABCDEFGHIJKLMNOPQRSTUVWXYZ()_+?><'; var i,j : integer; c : char; begin Result := ''; for i := 0 to length(s)-1 do begin c := s.Chars[i]; if isLetter(c) then begin j := pos(c,Eng); if j > 0 then c := Rus[j-1]; end; Result := Result + c; end; end; Ее вызывает сервер, когда отправляет данные на Андроид, обратная в Андроиде возвращает буквы на место. Но так же быть не должно!