WORD belgesini veritabanina atma????

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

WORD belgesini veritabanina atma????

Mesaj gönderen yetnot »

Merhaba arkadaşlar word dosyasını veritabanina atabiliyorum ama ilk sayfayı seçmem lazım sadece ilk sayfayı veritabanina atmak istiyorum...Aranızda sadece ilk sayfayı seçmemi sağlayacak kodu bilen varmı?

Kod: Tümünü seç

  WordApp  := CreateOleObject('Word.Application'); 
  WordApp.Visible := True; 
  Wordapp.documents.open(ExtractFilePath(Application.ExeName)+'deneme.doc'); 
  Range := WordApp.Documents.Item(1).Range;
  
evet arkadaslar bana ilk sayfayı sadece sececek mumkunse kopyalacak kod yardımlarınızı beklıyorum
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

metinlerin hangi sayafada olduğunu anlaman çok zor olur. Çünkü safya yapısı yazıcıya göre değişmektedir. Bir bilgisayarda bir metin başka 1. saydayken bir diğerinde 2. sayfaya geçmiş olabilir. Word makrolarına baktım 1. sayfayı seç gibi bir özellik bulamadım.
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

Merhaba

Mesaj gönderen yetnot »

Merhaba arkadaşım metinin hangi sayfada olduğu onemlı degıl...ben sadece 1. sayfayı almak ıstıyorum veri tabanina...Suan veritabanına word dosyasının tamamını atabılıyorum tabi sadece text dosyalarını...Ama hepsını degıl sadece bırıncı sayfayı alsın ıstıyorum...Yorumlarınızı beklıyorum
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

bende onu anlatmaya çalışıyorum. hangi metnin birince sayfada olduğunu anlamana imkan yok. bu nedenle kabaca bir yöntemle ilk 80-90 satırı alabilirsin.
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

merhaba

Mesaj gönderen yetnot »

Merhaba arkadaşım, sanırım bir iletişim problemi yaşıyoruz...Benim bir problemim var ve bu problem sadece word dosyasının ilk sayfasını veritabanina atma ile ilgili...

Siz diyorsunuzki metnin ilksayfada oldugunu nerden bileceksin diye...Metnin hangi sayfada olduguyla ilgilenmiyorum.Sadece ilk sayfayı VERİTABANINA atmaya çalışıyorum bu konuda yardımcı olabılırsenız sevınırım...Eger yanlış anlamınıza sebeb olacak bir sey soyledıysem kusurabakmayın..
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

bende bir çelişki gözükmüyor sizin istekleriniz çelişiyor gibi geldi.
Metnin hangi sayfada olduguyla ilgilenmiyorum.
sonra
Sadece ilk sayfayı VERİTABANINA atmaya çalışıyorum
diyorsunuz. metin ile sayfa arasında şöyle bir bağıntı var. metinler sayfada durur. word macrolarında birince sayfayı al gibi bir özellik yok malesef.

Kod: Tümünü seç

    Selection.HomeKey Unit:=wdStory
    Selection.MoveDown Unit:=wdLine, Count:=50, Extend:=wdExtend
bu kod yardımıyla ilk 50 satırı seçebilirsin mesala. ama seçtiğin alanın 1. sayfanın tamamını içerdiğini yada içermediğini anlayamazsın. Kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

@mkysoft kaç satırı atmak istiyorsun diye soruyor. Çünkü sayfa görecelidir diyor. A4'te atıyorum sayfada 80 satır var ise, A3'te sayfada 160 satır mevcuttur. Bu font boyutuna göre de değişmektedir.
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

Evet

Mesaj gönderen yetnot »

Evetr arkadaslar benede tam dedıgınız gıbı metin ile sayfa numarası arasında baglantıyı anlamadıgımdan iletişim problemi var demiştim...Benim bir konudaki eksikliğimden kaynaklanıyor...Ben sadece ilk sayfayı almakla ilgilendiğimden biraz sorun yaşıyorum..Ama madem sadece ilk sayfayı almak diye birşey yok. Ozaman verdiğiniz kodda işimi görür...

İlgilendiğiniz için çok teşekkür ederim...Verdiğiniz kod işimi görür tabi ilk sayfayı seçmek diye birşey olmadığından..Herkeze kolay gelsin...
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

word dosyasını

Mesaj gönderen danaci »

word dosyasını veya ofis dosyasını vt ye nasıl attığını anlatabilirmisin
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

merhaba

Mesaj gönderen yetnot »

procedure TForm1.Button1Click(Sender: TObject);
var
TitleName ,a: string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
bulunan:TSearchRec;
dosya:String;
WordApp : OleVariant;
Range : OleVariant;
PosFound : Integer;
begin
//BURASI DOSYANIN YERINI GOSTERMEK ICIN GEREKLI
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Lütfen bir klasör seçin';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
a:=TempPath;
GlobalFreePtr(lpItemID);
end;
//BURAYA KADAR
if edit1.Text='' then
begin
ShowMessage('Aranacak Metini Yazmadınız!! Sayfa Kapatılıyor');
form1.Close;
end;
if FindFirst(TempPath+'\*.doc',faAnyFile,bulunan)<>0 then //.doc uzantılı dosyaları lıstelemek ıcın
begin
end
else
begin
table1.Open;
repeat
dosya:= a+'\'+bulunan.name;//dosyanın yerı
WordApp := CreateOleObject('Word.Application');//word acılıyor
Wordapp.documents.open(dosya);//hangı word dosyaso
Range := WordApp.Documents.Item(1).Range;//hangı sayfa
Range.Find.ClearFormatting;
Range.Find.Text := Edit1.Text;//edıtten alınan text (arancak olan)
Range.Find.Execute;//uygula dıyoruz
if not Range.Find.Found then
begin
WordApp.ActiveDocument.Close;
end
else
begin
PosFound := Range.Start;

Table1.Insert;
Table1DOSYALAR.Value:=range;
Table1.Post;
Table1.Refresh;
Table1.Next;
//dosyalar listelendi
WordApp.ActiveDocument.Close;
end;
WordApp.Quit;

until FindNext(bulunan)<>0;
sysutils.FindClose(bulunan);
end;
end;


BU DOSYANIN YERINI GOSTERIRSIN ICERISINDEKI WORD DOSYALARININ ICINDEKI TEXT YAZILARI VERITABANINA ATAR OK.
Cevapla