سلام
دوست عزيز ، شما نياز داريد که داده هاي آرايه اي رو به صورت خط به خط ذخيره کنيد.
نحوه استفاده از داده هاي آرايي به اين صورت هستش که شما مثلا ميخوايد سه نام Ali ، Hasan و Hosein رو ذخيره کنيد.
بايد به اينصورت اين داده ها رو توي يک متغير رشته اي بريزيد :
کد:
line1$=[color=#800000]'Ali#Hasan#Hosein#'[/color]
که کاراکتر # اصطلاحا بهش جداکننده (Separator) ميگن ميتونه هرچيزي باشه ، هر چي يعني کاراکتر باشه. که با استفاده
از اين کاراکتر داده ها از هم جداسازي ميشن. بايد توجه کنيد که بعد از هر داده اي بايد اين کاراکتر قرار بگيره.
براي ذخيره سازي هر خط ميتونيد از دستور StrToLine استفاده کنيد. البته براي نوشتن توي فايل از دستور StrToFile
استفاده ميشه ، ولي چون شما ميخوايد خط به خط ذخيره کنيد ، پس بايد از دستور StrToLine استفاده کنيد.
شکل کلي دستور StrToLine :
کد:
[color=#000090][b]StrToLine[/b][/color](FileName$, String$, ToLine, Overwrite)
براي فراخواني داده هاي متني هم بايد ابتدا با استفاده از دستور StrFromFile استفاده کنيد و هر تعداد خطي رو که
خواستيد بازگذاري با همون لود کنيد.
شکل کلي دستور StrFromFile :
کد:
[color=#000090][b]StrFromFile[/b][/color](FileName$, FromLine, NumOfLines)
مثلا شما اين خط رو لود کرديد و درون يک متغير ريختيد ، به اينصورت :
کد:
line1$=[color=#800000]'Ali#Hasan#Hosein#'[/color]
حالا ميخوايم اين داده ها رو جدا سازي کنيم.
ابتدا با دستور GetArrayNum بايد تعداد داده ها رو مشخص کنيم که در مثال بالا
3 هستش. کدش
به اين صورته :
کد:
Num=[color=#000090][b]GetArrayNum[/b][/color](line1$,#)
شکل کلي دستور GetArrayNum :
کد:
[color=#000090][b]GetArrayNum[/b][/color](arrayofstrings$,delimiter)
با اين حساب متغير Num برابر ميشه با تعداد داده هاي توي متغير line1$ که با استفاده از کاراکتر # جدا شدن.
نکته : فکر ميکنم هم # درست باشه و هم
'#' .
حالا که تعدادشون رو پيدا کرديم بايد با استفاده از يک حلقه اطلاعات رو استخراج کنيم.
استخراج داده ها از چنين متغيري با استفاده از دستور GetArrayItem انجام ميشه. کدش به اين صورته :
کد:
[color=#0000FF]For[/color] i=[color=#ff0000]1[/color] [color=#0000FF]To[/color] Num
data$[i]=[color=#000090][b]GetArrayItem[/b][/color](line1$,#,i)
[color=#0000FF]Next[/color] i
که اينجا با استفاده از حلقه
For از اول داده ها تا آخر اونها رو ميخونه و در آرايه اي از متغيرهاي []
$data ذخيره ميکنه. که خروجي به اين صورت هستش :
کد:
data$[[color=#ff0000]1[/color]]=[color=#800000]'Ali'[/color]
data$[[color=#ff0000]2[/color]]=[color=#800000]'Hasan'[/color]
data$[[color=#ff0000]3[/color]]=[color=#800000]'Hosein'[/color]
شکل کلي دستور GetArrayItem:
کد:
[color=#000090][b]GetArrayItem[/b][/color](arrayofstrings$,delimiter,index)
البته شايان ذکره که مثلا شما ميخوايد از متغير line1$ فقط داده ي دوم رو بخونيد ، که ديگه نيازي به حلقه نيست و با اسن
دستور ميتونيد فقط همون داده دوم رو در متغير $data ذخيره کنيد :
کد:
data$=[color=#000090][b]GetArrayItem[/b][/color](line1$,#,[color=#ff0000]2[/color])
و در نهايت اگه ما بخوايم که يکي از داده ها رو همنطور کي مي خوايد توي يک Text بريزيم ، ميتونيم از اين کد استفاده کنيم
:
کد:
[color=#000090][b]LoadText[/b][/color]("Text","data$[[color=#ff0000]3[/color]]")
که در اين صورت داده سوم يعني Hosein توي اون Text ذخيره ميشه.
اميدوارم خوب توضيح داده باشم و خوب متوجه شده باشيد.
تا بعد...!