استوارت در مورد نیاز خود به ادغام بسیاری از فایل های متنی مختلف در یک سند Word نوشت. ثابت شد که قرار دادن فایل ها به صورت دستی خسته کننده است، به خصوص زمانی که 20 یا 30 فایل متنی مختلف برای ترکیب وجود داشت.
خوشبختانه برای استوارت، نام فایلهای او قابل پیشبینی بود: C1000.TXT، C1001.TXT، و غیره. این امر گردآوری یک ماکرو برای انجام یکپارچهسازی را بسیار آسان میکند. مثال زیر به دنبال فایلهای C1000.TXT تا C1030.TXT، همه در دایرکتوری C: میگردد و آنها را در سند جاری ترکیب میکند:
Sub CombineFiles() Dim J As Integer Dim sFile As String For J = 1000 To 1030 sFile = "c:c" & Trim(Str(J)) & ".txt" If (Dir(sFile) > "") Then Selection.InsertFile FileName:=sFile, ConfirmConversions:=False Selection.TypeParagraph End If Next End Sub
اگر میخواهید دامنه فایلهای درج شده را تغییر دهید، کافیست مقادیر ابتدای حلقه For... Next را تغییر دهید. اگر فایل ها در دایرکتوری دیگری هستند، می توانید مسیر استفاده شده در خط کد بعدی را تغییر دهید، جایی که sFile تنظیم شده است. اگر فایلی در محدوده گم شده باشد، به طور خودکار از آن صرفنظر می شود.
با این حال، راه سادهتری برای ترکیب فایلها وجود دارد که حتی شامل استفاده از Word نیز نمیشود. می توانید از دستور زیر در خط فرمان ویندوز استفاده کنید:
copy C1???.txt single.txt
این می تواند تا 1000 فایل، C1000.TXT تا C1999.TXT را در یک فایل متنی به نام SINGLE.TXT ترکیب کند. فایل های اصلی دست نخورده باقی می مانند. اگر می خواهید تعداد کمتری از فایل ها را ترکیب کنید، می توانید از این فرمت استفاده کنید:
copy C1020.txt+C1021.txt+C1022.txt+C1023.txt single.txt
این استفاده باعث می شود که چهار فایل C1020.TXT تا C1023.TXT در SINGLE.TXT ترکیب شوند. شما می توانید هر تعداد فایل را به این شکل که می خواهید با هم اضافه کنید.
با این حال، یک هشدار برای این تکنیک وجود دارد. دستور کپی باعث می شود که هیچ کاراکتر اضافی به یک فایل اضافه نشود. به عبارت دیگر محتویات C1021.TXT بلافاصله بعد از C1020.TXT قرار می گیرند. برای مثال اگر C1020.TXT حاوی "متن 1020" و C1021.TXT حاوی "متن 1021" باشد، SINGLE.TXT حاوی "متن 1020 متن 1021" خواهد بود. تنها راه حل این مشکل این است که یا هر فایل منبع را ویرایش کنید تا مطمئن شوید که با یک بازگشت به پایان می رسد، یا استفاده از ماکروی که قبلا ارائه شده است.