public static void AddMessageFromSymbianMessage(SymbianMessage sm) { if (sm.MessageText.Length == 0) return; DataSetNbuExplorer.MessageRow[] dupl = (DataSetNbuExplorer.MessageRow[])_defaultInstance.Message.Select("number = '" + sm.PhoneNumber.Replace("'", "''") + "'"); foreach (DataSetNbuExplorer.MessageRow mr in dupl) { if (mr.messagetext == sm.MessageText) return; } MessageRow row = _defaultInstance.Message.AddMessageRow(sm.DirectionBox, sm.MessageTime, sm.PhoneNumber, string.IsNullOrEmpty(sm.Name) ? NumToName(sm.PhoneNumber) : sm.Name, sm.MessageText); if (row.time == DateTime.MinValue) row.SettimeNull(); }
private void listViewFiles_SelectedIndexChanged(object sender, EventArgs e) { if (listViewFiles.SelectedItems.Count == 0) { hidePreview(); exportSelectedFilesToolStripMenuItem.Enabled = exportSelectedFilesToolStripMenuItem1.Enabled = false; return; } recountSelected(listViewFiles.SelectedItems); exportSelectedFilesToolStripMenuItem.Enabled = exportSelectedFilesToolStripMenuItem1.Enabled = true; FileInfo fi = listViewFiles.SelectedItems[0].Tag as FileInfo; if (fi == null || fi.FileSize > 5000000) { hidePreview(); return; } try { MemoryStream ms = new MemoryStream(); fi.CopyToStream(currentFileName, ms); ms.Seek(0, SeekOrigin.Begin); try { if (treeViewDirs.SelectedNode.Parent.Parent.Text.StartsWith("Mail")) { textBoxPreview.Visible = true; pictureBoxPreview.Visible = false; try { SymbianMessage sm = new SymbianMessage(ms); textBoxPreview.Text = sm.ToString(); } catch (Exception exc) { textBoxPreview.Text = exc.Message; } return; } } catch { } System.Text.StringBuilder sb; StreamReader sr; switch (Path.GetExtension(fi.SafeFilename).ToLower()) { case ".vcf": case ".vcs": // VCARD text preview sr = new StreamReader(ms, true); Vcard vcrd = new Vcard(sr.ReadToEnd()); sb = new System.Text.StringBuilder(); foreach (string key in vcrd.Keys) { if (key == "VERSION") continue; sb.AppendFormat("{0}: {1}\r\n", key, vcrd[key]); } if (vcrd.PhoneNumbers.Count > 0) { sb.Append("TEL: "); for (int i = 0; i < vcrd.PhoneNumbers.Count; i++) { if (i > 0) sb.Append(", "); sb.Append(vcrd.PhoneNumbers[i]); } sb.AppendLine(); } sr.BaseStream.Seek(0, SeekOrigin.Begin); sb.AppendLine("\r\n--- Raw VCARD format ---\r\n"); sb.Append(sr.ReadToEnd()); sr.Close(); textBoxPreview.Text = sb.ToString(); textBoxPreview.Visible = true; pictureBoxPreview.Visible = false; break; case ".vmg": case ".url": case ".txt": case ".jad": case ".xml": case ".csv": case ".ini": case ".log": case ".xhtml": case ".html": case ".htm": case ".smil": case ".css": case ".wbxml": // general text preview int b; bool unicode = false; while ((b = ms.ReadByte()) != -1) { if (b == 0) { unicode = true; break; } } ms.Seek(0, SeekOrigin.Begin); if (unicode) sr = new StreamReader(ms, System.Text.Encoding.Unicode); else sr = new StreamReader(ms, true); sb = new System.Text.StringBuilder(); while (!sr.EndOfStream) { sb.AppendLine(sr.ReadLine()); } sr.Close(); textBoxPreview.Text = sb.ToString(); textBoxPreview.Visible = true; pictureBoxPreview.Visible = false; break; default: Image img = Image.FromStream(ms); pictureBoxPreview.Image = img; textBoxPreview.Visible = false; pictureBoxPreview.Visible = true; break; } } catch { hidePreview(); } }
private void parseSymbianMessage(FileInfo fi) { long cnt = StreamUtils.Counter; try { MemoryStream ms = new MemoryStream(); fi.CopyToStream(currentFileName, ms); ms.Seek(0, SeekOrigin.Begin); SymbianMessage sm = new SymbianMessage(ms); fi.FileTime = sm.MessageTime; DataSetNbuExplorer.AddMessageFromSymbianMessage(sm); } catch (Exception ex) { addLine(ex.Message); } finally { StreamUtils.Counter = cnt; } }