البحث داخل ملفات word
#1
السلام عليكم و رحمة الله

لدى مجموعة كبيرة من ملفات word من نوعى doc و docx
كيف البحث داخلها جميعاً عن كلمة أو مجموعة كلمات ؟
الرد
#2
السلام عليكم
1- ارسال صورة سطح المكتب لملف وورد من دلفي
2- [FONT=Arial]Delphi - Microsoft Word COM (مشروع كامل)
بالتوفيق ,,
I'M Fly Like A G6

الرد
#3
[COLOR="black"]وعليكم السلام ورحمة الله
استخدم OLE Object
طريقة البحث والاستبدال لا تختلف كثيرا عنها:
PHP كود :
{
  
This function starts a hidden word instance, opens a specified document "ADocument"
  
and replaces (all) occurrences of "SearchString" with a specified "ReplaceString".
  
The function is similar to the Delphi StringReplace() function.
}

uses
  ComObj
;

// Replace Flags
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;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Word_StringReplace
('C:\Test.doc','Old String','New String',[wrfReplaceAll]);
end; 
المثال لـ Thomas Stutz
استعن أيضا بملفات الـ Help المرفقة مع Visual Basic لإصدار MSWord
بالتوفيق.[/COLOR]
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم