Arkadaşlar merhaba. Yapmak istediğimiz işlem şöyle;
Uzunca bir word dosyası düşünün bu dosya içerisinde bazı cümleler içerisine veri tabanındaki bilgilerden değiştirme ya da ekleme yapmak istiyorum. Örnek olarak aşağıdaki metin varolan bir word dosyasında diyelim. Bunun içerisinde kırmızı yazılı yerleri veri tabanındaki bir alan ile değiştirmek istiyorum. Word dosyasında istediğim ku kelimleri aratıp değiştirmek mümkün müdür? Veya excel deki gibi satır sütun belirterek o kelimeleri değiştirmek mümkün müdür? Nasıl yapabilirim sizce ?
Merhaba,
Delphi ile ilgili bir sorunuz olursa lütfen forum kısmına sorun. E-mail (burayı e-posta olarak değiştirmek istiyorum.)ile sorulan Delphi soruları cevaplandırılmaz! Site yönetimi sürekli forumu takip etmektedir. Ayrıca Foruma sorduğunuz zaman sadece bir kişi değil,(burayı kullanıcı olarak değiştirmek istiyorum.) yüzlerce kişi sorunuzu görüp cevap yazabilir, hem de verilen cevaplardan diğer üyelerde faydalanır.
Foruma üye olma noktasında sıkıntı yaşıyorsanız, Forum Yardım kısmına yazabilir veya bize e-maille (Burayı "e-posta aracılığıyla" olarak değiştirmek istiyorum.)ulaşabilirsiniz.
Gelişen süreçte FORUM kısmı çok daha aktif olduğundan kaynakların birçoğu forum kısmındadır. Sitenin ve forumun offline .CHM yardım dosyası halini de artık forumdan dağıtıyoruz.
MS Word içerisinde kelime düzenleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
MS Word içerisinde kelime düzenleme
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Re: MS Word içerisinde kelime düzenleme
word belgesini değiştirmeyi ben yapmadım, ama internette bulabilrsin. Diğer kısım için de yanılmıyorsam gavurcası "mailmerge" gibi birşey.
Değiiştirmek istediğin kelimeleri belirtmen gerek, bunlarıda tekil gavurcası unique olması gerekir. Misal: "E_Mail" field ın adı olsun, bunu text içine %%E_Mail%% olarak eklersen,
Text:= System.SysUtils.StringReplace(Text, '%%E_Mail%%', QUE.FieldByName('E_Mail').asString, [rfReplaceAll]);
Değiiştirmek istediğin kelimeleri belirtmen gerek, bunlarıda tekil gavurcası unique olması gerekir. Misal: "E_Mail" field ın adı olsun, bunu text içine %%E_Mail%% olarak eklersen,
Text:= System.SysUtils.StringReplace(Text, '%%E_Mail%%', QUE.FieldByName('E_Mail').asString, [rfReplaceAll]);
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: MS Word içerisinde kelime düzenleme
Hocam gavurcaya gerek kalmadan işimi görebilecek bir şey buldum Aşağıdaki kod parçası ile yer işareti oluşturarak istediğim yere istediğim kelimeyi ekleyebilirim. Bunun üzerinden gidiyim şimdilik. Kelime değiştirme işine de bakalım artık.
procedure TForm1.Button1Click(Sender: TObject);
Var
R,
YerimiAdi,
Word,
Doc : OleVariant;
Sayac : Integer;
begin
Word := CreateOleObject('Word.Application');
Word.Documents.Open(ExtractFilePath(Application.ExeName)+'teklif.docx');
Doc := Word.ActiveDocument;
YerimiAdi := 'TeklifSunulacakYer';
if Doc.Bookmarks.Exists( YerimiAdi ) then
begin
R := Doc.Bookmarks.Item(YerimiAdi).Range;
R.InsertAfter( 'Delphi Türkiye Forum' );
R.Font.Color := clBlue;
end;
Word.Visible := True;
Word := UnAssigned;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
R,
YerimiAdi,
Word,
Doc : OleVariant;
Sayac : Integer;
begin
Word := CreateOleObject('Word.Application');
Word.Documents.Open(ExtractFilePath(Application.ExeName)+'teklif.docx');
Doc := Word.ActiveDocument;
YerimiAdi := 'TeklifSunulacakYer';
if Doc.Bookmarks.Exists( YerimiAdi ) then
begin
R := Doc.Bookmarks.Item(YerimiAdi).Range;
R.InsertAfter( 'Delphi Türkiye Forum' );
R.Font.Color := clBlue;
end;
Word.Visible := True;
Word := UnAssigned;
end;
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Re: MS Word içerisinde kelime düzenleme
Boş bir uygulama açın
uygulamayı doc dosyasıyla aynı klasöre koyun, değişmesi gereken E-mail ve E-Posta stringi bulunan bir test dosyası yazıp kaydedin ve uygulamayı çalıştırıp butona basın
word dosyasını açtığınızda E-mail textinin E-posta ile değiştiğini göreceksiniz.
USES COMOBJ eklemeyi unutmayın
//----- kullanımı -------//
BUTONA alttaki kodu yazın
uygulamayı doc dosyasıyla aynı klasöre koyun, değişmesi gereken E-mail ve E-Posta stringi bulunan bir test dosyası yazıp kaydedin ve uygulamayı çalıştırıp butona basın
word dosyasını açtığınızda E-mail textinin E-posta ile değiştiğini göreceksiniz.
USES COMOBJ eklemeyi unutmayın
Kod: Tümünü seç
uses
comobj
type
TWordReplaceFlags = set of (wrfReplaceAll, wrfMatchCase, wrfMatchWildcards);
function Word_StringReplace(ADocument: TFileName; SearchString, ReplaceString: string; Flags: TWordReplaceFlags): Boolean;
const
wdFindContinue = 1;
wdReplaceOne = 1;
wdReplaceAll = 2;
wdDoNotSaveChanges = 0;
var
WordApp: OLEVariant;
begin
Result := False;
{ Check if file exists }
if not FileExists(ADocument) then
begin
ShowMessage('Specified Document not found.');
Exit;
end;
{ Create the OLE Object }
try
WordApp := CreateOLEObject('Word.Application');
except
on E: Exception do
begin
E.Message := 'Word is not available.';
raise;
end;
end;
try
{ Hide Word }
WordApp.Visible := False;
{ Open the document }
WordApp.Documents.Open(ADocument);
{ Initialize parameters}
WordApp.Selection.Find.ClearFormatting;
WordApp.Selection.Find.Text := SearchString;
WordApp.Selection.Find.Replacement.Text := ReplaceString;
WordApp.Selection.Find.Forward := True;
WordApp.Selection.Find.Wrap := wdFindContinue;
WordApp.Selection.Find.Format := False;
WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags;
WordApp.Selection.Find.MatchWholeWord := False;
WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags;
WordApp.Selection.Find.MatchSoundsLike := False;
WordApp.Selection.Find.MatchAllWordForms := False;
{ Perform the search}
if wrfReplaceAll in Flags then
WordApp.Selection.Find.Execute(Replace := wdReplaceAll)
else
WordApp.Selection.Find.Execute(Replace := wdReplaceOne);
{ Save word }
WordApp.ActiveDocument.SaveAs(ADocument);
{ Assume that successful }
Result := True;
{ Close the document }
WordApp.ActiveDocument.Close(wdDoNotSaveChanges);
finally
{ Quit Word }
WordApp.Quit;
WordApp := Unassigned;
end;
end;
//----- kullanımı -------//
BUTONA alttaki kodu yazın
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
Word_StringReplace(ExtractFilePath(Application.ExeName)+'teklif.docx','E-mail ','E-posta',[wrfReplaceAll]);
end;
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;