From 48540940b6c28bb4378abfeb500ec45a625b37b6 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Tue, 15 May 2012 10:38:20 +0000 Subject: initial commit git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/ImportTXT/BICQ6IP.inc | 91 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 plugins/ImportTXT/BICQ6IP.inc (limited to 'plugins/ImportTXT/BICQ6IP.inc') diff --git a/plugins/ImportTXT/BICQ6IP.inc b/plugins/ImportTXT/BICQ6IP.inc new file mode 100644 index 0000000000..af8c197e74 --- /dev/null +++ b/plugins/ImportTXT/BICQ6IP.inc @@ -0,0 +1,91 @@ +{$ifdef BIN_IMPORT_} +var DS: PDataSource; + SS: PSession; + QR1: PQuery; + +var + OneContact:boolean; + flags:integer; + timestamp:LongWord; + Msg:string; + +function FindUIDinDB(too:string):string; +var QR2:PQuery; +begin + QR2:= NewQuery( SS ); + QR2.Text := 'select to, UID from ChatHistory WHERE to='+too; + QR2.Open; + QR2.First; + result:=QR2.FieldByNameAsStr['UID']; + QR2.Free; +end; + +{$else} +begin + DoUnMapFile; + OneContact:=(DContact.hContact<>0) and (DContact.hContact<>INVALID_HANDLE_VALUE); + try + DS := NewDataSource( 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' + + 'Data Source='+FileName+ + ';Mode=Share Deny None;' + + 'Extended Properties="";' + + 'Locale Identifier=1033;' + + 'Persist Security Info=False;'); + SS := NewSession( DS ); + QR1 := NewQuery( SS ); + QR1.Text:= 'SELECT Messages.from, date, to, type, subType, subject FROM Messages'; + QR1.Open; + if (QR1.ColCount=7) then + begin + DoMessage(ITXT_THREAD_START,0,0); + QR1.First; + DoMessage(ITXT_THREAD_MAXPROGRESS,0,QR1.RowCount); + While not QR1.EOF do + begin + try + if (QR1.SFieldByName[ 'type' ]='Text') and + (QR1.SFieldByName[ 'subType' ]='IM') then + begin + UIDStr:=FindUIDinDB(QR1.FieldByNameAsStr[ 'to' ]); + if not OneContact then + begin + DContact.ContactUID:=UIDStr; + TryDetermContact(DContact); + end; + if (DContact.hContact<>0) and (DContact.hContact<>INVALID_HANDLE_VALUE) then + begin + if QR1.SField[ 1 ]='' then flags:=DBEF_SENT or DBEF_READ + else flags:=DBEF_READ; + if IsMirandaUnicode then flags:=flags or DBEF_UTF; + timestamp:=DateTimeToTimeStamp(QR1.DFieldByName['date']-693594); + Msg:=QR1.SFieldByName['subject']; + if IsMirandaUnicode then + begin + tempstr:=ANSIToUTF8(PAnsiChar(Msg),tempstr,cp); + Msg:=tempstr; + FreeMem(tempstr); + end; + AddMsgToDB(DContact.hContact,flags,timestamp,Msg,AddedMessages,Duplicates); + end; + end; + except + ShowException(ExceptObject,ExceptAddr) + end; + QR1.Next; + DoMessage(ITXT_THREAD_PROGRESS,QR1.CurIndex,0); + end; //for + end + else + begin + s:=WideFormat(TranslateWideString('Its not %s file'),['ICQ6 mdb']); + DoMessage(ITXT_THREAD_ERROR,integer(PWideChar(s)),0); + end; + finally + DS.Free; + DS := nil; + SS := nil; + QR1 := nil; + end; +end; +{$endif} + -- cgit v1.2.3