doc to text

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

doc to text

Mesaj gönderen true_false »

Mrb;
word dökümanı(doc) text dosya gibi alıp parse işlemleri yapmam gerek. bunun için nasıl bir yol izlemeliyim.
type
Tform1 = class(Tform)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

bkz trichedit
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

rich edit yemiyor word dokümanlarda tablo var. ayrıca uzantıyı rtf olarak deiştirdim yine yemedi.
type
Tform1 = class(Tform)
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Txt olarak kaydedebilirsin bildiğim kadarı ile word dökümanını
ondan sonra da parse yaparsın.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

true_false yazdı:rich edit yemiyor word dokümanlarda tablo var. ayrıca uzantıyı rtf olarak deiştirdim yine yemedi.
trichedit dedim usta.. nomal richedit değil onda word importer var.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

uzantıyı değiştirince olmadı
@ikutluay önyargılı davranmışım ama verdiğin companent paralı
visual studio'da com apisi olarak (word 11.0 object library) projeye refere edince

Kod: Tümünü seç

       private Microsoft.Office.Interop.Word.ApplicationClass WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
        private void button1_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
            object file = openFileDialog1.FileName;
            object nullobj = System.Reflection.Missing.Value;
            Microsoft.Office.Interop.Word.Document doc = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);
            Microsoft.Office.Interop.Word.Document doc1 = wordApp.ActiveDocument;
            richTextBox1.Text = doc1.Content.Text;
            doc.Close(ref nullobj, ref nullobj, ref nullobj);
        }
istediğim tam olarak oluyor bunu delphide nasıl yapabiliriz..
type
Tform1 = class(Tform)
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

Kod: Tümünü seç

var
words,docs,fselect,copy_select,paste_select:OleVariant;
//:Variant;
sss:string;
begin
 words :=  CreateOleObject('Word.Application');
 words.Documents.open('C:\deneme.doc');
 docs := words.Activedocument;
  // fselect:= Docs.ActiveWindow.Selection.WholeStory;// select all
      docs.ActiveWindow.Selection.Find.text := 'WHO';
      docs.ActiveWindow.Selection.Find.Replacement.Text := '';
      docs.ActiveWindow.Selection.Find.Forward := True;
      docs.ActiveWindow.Selection.Find.Wrap := wdFindAsk;
      docs.ActiveWindow.Selection.Find.Format := False ;
      docs.ActiveWindow.Selection.Find.MatchCase := False;
      docs.ActiveWindow.Selection.Find.MatchWholeWord := False;
      docs.ActiveWindow.Selection.Find.MatchWildcards := False;
      docs.ActiveWindow.Selection.Find.MatchSoundsLike := False;
      docs.ActiveWindow.Selection.Find.MatchAllWordForms := False;
      docs.ActiveWindow.Selection.Execute;
      docs.ActiveWindow.Selection.MoveRight(Unit_:=wdCharacter, Count:=13);
      docs.ActiveWindow.Selection.MoveRight(Unit_:=wdCharacter, Count:=3, Extend:=wdExtend);
      sss := docs.ActiveWindow.Selection.Text;
   Memo1.Lines.Add(sss);
// words.close;
end;
merhaba makrolardan şunu çıkartabildim.
ancak



method 'moveRight' not supported by automatian object

hatası vermektedir.
amaç gerekli text bulunur kopyalanır ve texte atılır.
type
Tform1 = class(Tform)
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Mesaj gönderen true_false »

docs.ActiveWindow.Selection.MoveRight(Unit_:=wdCharacter, Count:=13);
docs.ActiveWindow.Selection.MoveRight(Unit_:=wdCharacter, Count:=3,
unit_ ----> unit olarak değiştirildi ve problem çözüldü arkadalar isteğim. madem çözüldü kısa bir cevap yazayım
istediğim doc dosyanın içerini tamamen bir tex'e atmaktı bunun için sadece

Kod: Tümünü seç

 Docs.ActiveWindow.Selection.WholeStory;// select all
sss:=  Docs.ActiveWindow.Selection.text;
yeterliydi ama tabi vb macrolarda baya işimi gördü. herkese kolay gelsin.
type
Tform1 = class(Tform)
Cevapla