خيلى ممنون دستت درد نكوند اين بو كة ميخستم ولى يك لوطف ميشة اين كد توزيح بديد
دوست عزيز
خط اول اين كد آدرس فايل txt شما رو بدست مياره و تو متغير $source ميريزه (همون فايلي كه متن فارسي و انگليسي با هم هست)
خط دوم يك آدرس براي فايل انگليسي به نام en در نظر ميگيره و تو متغير $enfile ميريزه
خط سوم هم يك آدرس براي فايل فارسي به نام fa در نظر ميگيره و تو متغير $fafile ميريزه
خط بعدي شروع حلقه ماست كه ميگه از i=1 تا ($Nol (source تكرار بشه. تابع Nol تعداد خطوط فايل متني موردنظر رو بر ميگردونه
مثلا اگه تو فايل source شما 10 خط وجود داشته باشه Nol اون برابر 10 ميشه پس حلقه ما از 1 تا 10 تكرار خواهد شد.
تو خط بعدي با تابع StrFromFile خطي رو از فايل متني ميخونيم و تو متغير $str ميريزيم
شكل كلي اين دستور به اين صورت هست:
کد:
str$ = StrFromFile(path$,x,y)
تو كد بالا $path مسير فايل موردنظر شما. x شماره خطي كه قصد داريد بدست بياريد و y تعداد خطوطي كه قصد داريد بدست بياد هست. پس:
کد:
str$ = StrFromFile(source$,i,1)
ميخواد بگه انتخاب كن فقط 1 خط از محل خط شماره i فايل $source و چون اين دستور تو حلقه هست به ازاي هربار چرخش حلقه مقدار i يك واحد اضافه ميشه پس تو چرخش حلقه به ترتيب از خط اول تا خط آخر فايل متني شما خط به خط انتخاب ميشه و تو متغير $str ثبت ميشه
تو دستور:
به انتهاي رشته بدست اومده كه تو متغير $str ذخيره شده يك كاراكتر = رو اضافه ميكنيم پس نتيجه چيزي شبيه به اين خواهد شد:
=سلام=hello
کد:
en$ = GetArrayItem(str$,'=',1)
چون تو فايل متني اول متن انگليسي و بعد كاراكتر مساوي و بعد متن فارسي قرار داره پس با GetArrayItem و تعيين يك علامت جداكننده مثل = ميتونيم بگيم تمام رشته ما رو تا اولين علامت = انتخاب كن و تو متغير $en بريز كه نتيجه ميشه بدست اومدن متن انگليسي خط موردنظر شما
تو خط بعدي با دستور StrToFile و مقدار متغير $en رو تو فايل $enfile ثبت ميكنيم
همين كار رو براي عبارت فارسي هم تكرار ميكنيم و اينبار با دستور GetArrayItem رشته قبل از دومين علامت = كه همون متن فارسي هست رو بدست مياريم و تو متغير $fa ميريزيم و مقدار اين متغير رو هم تو خط بعدش به فايل فارسي ارسال ميكنيم
در پايان هم حلقه رو با Next i ميبنديم