TSendRec DocType ermitteln.

TSendRec DocType ermitteln.

Neuer Beitragvon gast » Mo Okt 30, 2006 8:55 am


Hallo.
Ich lese den Inhalt eines Archives nicht über die API aus (das dauert bei
ca. 1000 Einträgen recht lang), sondern über die Datei archive.dat.
Das klappt so ansich ganz gut, nur kann ich den MessageTyp eines Eintrages
nicht ermitteln.

Die Dokumentation verstehe ich an dieser Stelle nicht.
Ich arbeite mit Delphi und kann deswegen die TSendRec-Struct nicht 1:1
übernehmen.
Wie erkennt man Emails, Faxe, Termine u.s.w. ??

Hat einer einen Rat?

Danke
Ronald
gast
 
Beiträge: 0
Registriert: Mo Jun 01, 2009 12:08 pm

Advertisement

Re: TSendRec DocType ermitteln.

Neuer Beitragvon gast » Mo Okt 30, 2006 1:28 pm


Hallo Ronald,
Hallo.
Ich lese den Inhalt eines Archives nicht über die API aus (das dauert
bei
ca. 1000 Einträgen recht lang), sondern über die Datei archive.dat.
Das klappt so ansich ganz gut, nur kann ich den MessageTyp eines
Eintrages
nicht ermitteln.

Ich habe das ganze über C# gemacht, nur soviel es geht nicht ohne bit maskierung,
hier der C# Code dazu:

public enum DocumentType : uint {
Fax = 0x00,
Directory = 0x10,
Email = 0x20,
Tmail = 0x30,
Wave = 0x40,
Ext = 0x50,
Address = 0x60,
SMS = 0x70,
Unknown = 0x80,
Schedule = 0x90,
Ect = 0xA0,
Link = 0xB0
}

if (Convert.ToBoolean(buffer[7] & 0x10)) {
//DocumentType is appointment, shift the bit an add 128 to
get the correct type
return ((DocumentType)((buffer[3] & 0x70) >> 1) + 128);
} else if (Convert.ToBoolean(buffer[6] & 0x04)) {
//DocumentType is Ect
return ((DocumentType)((buffer[3] & 0x70) + 128));
} else {
//Standard 3 bit DocumentType
return ((DocumentType)(buffer[3] & 0x70));
}

Es ist etwas kompliziert, weil Tobit mehr Dokumenten Typen angibt als in
die dafür vorgesehen 3 bit hinein passen. Deswegen muss man an anderen stellen
nach sehen ob es ein Appointment ist oder Ect (was auch immer das sein soll),
der Code funktioniert zu 100%

Grüße
Sascha
gast
 
Beiträge: 0
Registriert: Mo Jun 01, 2009 12:08 pm

Re: TSendRec DocType ermitteln.

Neuer Beitragvon gast » Mo Dez 04, 2006 10:58 am


Danke Sascha für den Code.

Aber so richtig funktioniert er bei mir nicht.
Leider bin ich im C# nicht so fit. Ich schreibe das ganze in Delphi32.

Hat es einen Grund warum du die Bytes nur mit einem & und nicht mit &&
verknüpfst?
Laut C#-Doku wäre eine Verknüpfung mittels && eine Binäre Verknüpfung. Im
Delphi entsprechen dem AND
Aber nur ein & wäre eine Unäre Verknüpfung. Was immer das auch sein soll. Im
Delphi finde ich kein Equivalent dazu.

Grüße
Ronald


schrieb im Newsbeitrag
news:7c75c7217ca68c8ca5ff5ea4b92@news.tobit.com...
Hallo Ronald,
Hallo.
Ich lese den Inhalt eines Archives nicht über die API aus (das dauert
bei
ca. 1000 Einträgen recht lang), sondern über die Datei archive.dat.
Das klappt so ansich ganz gut, nur kann ich den MessageTyp eines
Eintrages
nicht ermitteln.

Ich habe das ganze über C# gemacht, nur soviel es geht nicht ohne bit
maskierung,
hier der C# Code dazu:

public enum DocumentType : uint {
Fax = 0x00,
Directory = 0x10,
Email = 0x20,
Tmail = 0x30,
Wave = 0x40,
Ext = 0x50,
Address = 0x60,
SMS = 0x70,
Unknown = 0x80,
Schedule = 0x90,
Ect = 0xA0,
Link = 0xB0
}

if (Convert.ToBoolean(buffer[7] & 0x10)) {
//DocumentType is appointment, shift the bit an add 128 to
get the correct type
return ((DocumentType)((buffer[3] & 0x70) >> 1) + 128);
} else if (Convert.ToBoolean(buffer[6] & 0x04)) {
//DocumentType is Ect
return ((DocumentType)((buffer[3] & 0x70) + 128));
} else {
//Standard 3 bit DocumentType
return ((DocumentType)(buffer[3] & 0x70));
}

Es ist etwas kompliziert, weil Tobit mehr Dokumenten Typen angibt als in
die dafür vorgesehen 3 bit hinein passen. Deswegen muss man an anderen
stellen
nach sehen ob es ein Appointment ist oder Ect (was auch immer das sein
soll),
der Code funktioniert zu 100%

Grüße
Sascha


gast
 
Beiträge: 0
Registriert: Mo Jun 01, 2009 12:08 pm


Zurück zu David Developer API DvAPI

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron