Модуль "Справочник" (часть 5) - GetPhoneBookParamsEx
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
//****************************************************************** //******************** новая телефонная книга ******************** //****************************************************************** function TfrmAT_PhoneBook.GetPhoneBookParamsEx(var xPP: TxPhoneBookParamEX): boolean; var str, tmp, tmp2: string; x, i, min, max: integer; xStrLst: TStringList; begin result:= false; if Form1.IsATConnected then begin min:= 0; max:= 0;
FillMemory(@xPP, sizeof(xPP), 0);
str:= SendATCommand('AT+CPBS=ME');
if (str <> '') and (xComPort.ATResult) then
begin
str:= SendATCommand('AT+MPBRE=?');
if (str <> '') and (xComPort.ATResult) then
begin
str:= ParseRevers(str, ':'); //(1-2000),(1-13),40,100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
ExtractStr(str, '('); //1-2000),(1-13),40,100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, '),'); //(1-13),40,100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ParseRevers(tmp, '-'); xPP.MECount:= strtoint(tmp);
ExtractStr(str, '('); //1-13),40,100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, '),'); //40,100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ParseRevers(tmp, '-'); xPP.RecordCount:= strtoint(tmp);
tmp:= ExtractStr(str, ','); xPP.ME_NumberLength:= strtoint(tmp); //100,19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.ME_NameLength:= strtoint(tmp); //19,(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(0-1),64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.ME_EmailLength:= strtoint(tmp); //(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //32,(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); //(0-1,255),264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, '),'); //264,(0),62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, '),'); //62,62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.Street1Length:= strtoint(tmp); //62,32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.Street2Length:= strtoint(tmp); //32,32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.CityLength:= strtoint(tmp); //32,32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.RegionLength:= strtoint(tmp); //32,32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.PostIndexLength:= strtoint(tmp); //32,50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.CountryLength:= strtoint(tmp); //50,264,7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.NicknameLength:= strtoint(tmp); //264,7,2,2,2,128,128
tmp:= ExtractStr(str, ',');
tmp:= ExtractStr(str, ','); xPP.cntPhones:= strtoint(tmp);//7,2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.cntEmails:= strtoint(tmp);//2,2,2,128,128
tmp:= ExtractStr(str, ','); xPP.cntSites:= strtoint(tmp);//2,2,128,128
tmp:= ExtractStr(str, ','); //2,128,128
tmp:= ExtractStr(str, ','); xPP.UrlLength:= strtoint(tmp); //128,128 #13#10
tmp:= ExtractStr(str, #13);
tmp:= ExtractStr(tmp, ','); xPP.NoteLength:= strtoint(tmp); //128
end;
end;
str:= '';
str:= SendATCommand('AT+CPBS=SM');
if (str <> '') and (xComPort.ATResult) then
begin
str:= SendATCommand('AT+CPBR=?');
// #$D#$A'+MPBR: 1001-1200,40,26,8,0-1,50,(0-5,10-14,16-19,255),(0),(0-1),(1-30),(255),25,(0-1,255),263,(0)'#$D#$A#$D#$A'OK'#$D#$A
// +MPBR: 1-180,40,20,14,0-1,64,(255),(0),(0-1),(1-10),(255),32,(0-1,255),264,(0),62,62,32,32,32,32,50,264
if (str <> '') and (xComPort.ATResult) then
begin
result:= true;
str:= ParseRevers(str, ':');
tmp:= ExtractStr(str, '(');
tmp:= ExtractStr(str, '),');
min:= StrToInt(ExtractStr(tmp, '-'));
max:= StrToInt(tmp);
//xPP.TotalRec:= xPP.TotalRec + max;
xPP.SMCount:= max;
xPP.TotalRec:= xPP.MECount + xPP.SMCount;
tmp:= ExtractStr(str, ','); xPP.SM_NumberLength:= strtoint(tmp);
tmp:= ExtractStr(str, #13);
tmp:= ExtractStr(tmp, ','); xPP.SM_NameLength:= strtoint(tmp);
end;
end
else result:= false;
str:= SendATCommand('AT+CPBS=MT');
end;
end;
Еще записи по теме
- Модуль "P2KApi" (часть 3)
- Модуль "FirstHinstanceRunning"
- Модуль "Пункты меню" (часть 40) - GetMma_SMS_NUMBER
- Модуль "SeemEditor" (часть 1) - определение переменных и типов данных
- Модуль "P2KApi" (часть 9) - SwitchCom
- Модуль "Пункты меню" (часть 31) - RecalcTreeIndexes
- Главный модуль программы (часть 31) - spSkinButtonGroup1ButtonClicked
