PDA

View Full Version : سوال: ذخيره کردن و بارگذاري اطلاعاتي در يک فايل متني



gorg313
پنج شنبه 07 شهریور 1392, 21:29 عصر
با عرض سلام خدمت دوستان و برنامه نويسانه عزيز

من يه برنامه نوشتم که داري چند بخش هست

اين از مشخصات که در ماژول تعريف کردم

Public Type bank
titelsite As String
email As String
namesite As String
comment As String
End Type

در جنرال فرم اين اطلاعات

Dim O As String
Dim INFO As bank


در فرم لود



O = App.Path & "\INFO.TXT"




اين هم براي ذخيره اطلاعات


Open O For Random As #1
INFO.titelsite = Text1.Text
INFO.email = Text2.Text
INFO.namesite = Text3.Text
INFO.comment = Text4.Text

Put #1, Val(Text5.Text), INFO

Close



اين هم براي بارگذاري مقدارهاي ذخيره شده


If Text5.Text <> "" Then
Open O For Random As #1
Get #1, Val(Text5.Text), INFO
Text1.Text = INFO.titelsite
Text2.Text = INFO.email
Text3.Text = INFO.namesite
Text4.Text = INFO.comment
Close
End If


برنامه کامل و درست عمل کرد

اما مشخصه ي text4 به صورت مولتي لاين ست شده است يعني چندخطي
وقتي مقدار متن سنگين مي شود فايل را ذخيره نمي کند من ميخوام مثلآ يه مقدار سنگين مثلآ 20 خط متن را داخل خودش سيو و بارگذاري کنه

من ميخواستم مقدار text4 بيشتر از اين ها باشه ممنونم ميشم سورس ضميمه کنيد

مقدار string را زياد هم کردم ولي چيز خاصي ذخيره نکرد

ممنون ميشم سورسي بذاريد که بشه ذخيره کرد و بارگذاري هم نمود

:خجالت:

Mr'Jamshidy
پنج شنبه 07 شهریور 1392, 23:44 عصر
ببین این راه مشکل رو حل میکنه:

Comment رو از نوع آرایه تعریف کن

Public Type bank
titelsite As String
email As String
namesite As String
comment() As String
End Type

برای مقدار دهی Comment از این روش استفاده کن:

Open O For Random As #1
INFO.titelsite = Text1.Text
INFO.email = Text2.Text
INFO.namesite = Text3.Text
INFO.comment = Split(Text4.Text, vbCrLf)

Put #1, Val(Text5.Text), INFO

Close


و برای بارگذاری

If Text5.Text <> "" Then
Open O For Random As #1
Get #1, Val(Text5.Text), INFO
Text1.Text = INFO.titelsite
Text2.Text = INFO.email
Text3.Text = INFO.namesite
Text4.Text = Join(INFO.comment, vbCrLf)
Close
End If

gorg313
جمعه 08 شهریور 1392, 12:09 عصر
ببین این راه مشکل رو حل میکنه:<center>

Comment رو از نوع آرایه تعریف کن

Public Type bank
titelsite As String
email As String
namesite As String
comment() As String
End Type

برای مقدار دهی Comment از این روش استفاده کن:

Open O For Random As #1
INFO.titelsite = Text1.Text
INFO.email = Text2.Text
INFO.namesite = Text3.Text
INFO.comment = Split(Text4.Text, vbCrLf)

Put #1, Val(Text5.Text), INFO

Close


و برای بارگذاری

If Text5.Text <> "" Then
Open O For Random As #1
Get #1, Val(Text5.Text), INFO
Text1.Text = INFO.titelsite
Text2.Text = INFO.email
Text3.Text = INFO.namesite
Text4.Text = Join(INFO.comment, vbCrLf)
Close
End If


سلام آقاي جمشيدي

بابت جواب ممنونم

اين کد که شما گفتي استفاده کردم درست هم عمل کرد

اما موقع ذخيره اطلاعات فقط دو خط را سيو ميکنه راهي هست که بشه يک فايل متني 40 خطه يا 50 خطه را ذخيره کرد؟ منظورم متن سنگين

اگه سورس هم تغيير کنه هم مهم نيست

:قلب:

<center/>

vbhamed
شنبه 09 شهریور 1392, 11:28 صبح
سلام
اين روش شما براي كار با فايلهاي دستيابي تصادفي اصولي نيست، بيشتر براي مواردي بدرد مي‌خوره كه طول يك ركورد از يك سطر با طول محدود بيشتر نشه
براي اينكارها يا بايد از ديتابيس استفاده كنيد يا نهايتا اون متن بزرگتون رو در يك فايل متني جداگانه ذخيره كنيد و اسمش يا آدرس فايلش رو در فايل اصلي اطلاعاتتون ثبت كنيد