راهنمایی در مورد txt فایل

vahid1352

Active Member
سلام به همه اساتید
من می خوام با لستفاده از چند ادیت باکس در یک فایل txt بصورت این که متن وارده در ادیت باکس اول بصورت مثلا 30کاراکتروبعد از اون در همون خط متن وارده در ادیت باکس دوم مثلا در 20 کاراکتر وسوم هم به همین صورت ذخیره بشه لطفا راهنمایی کنید ممنون
 

evil_gates

اين نيز بگذرد ...
دوست عزیز
راستش به طور دقیق متوجه منظورتون نشدم. لطفا یکم بیشتر توضیح بدید. برای ارسال یک مقدار از EditBox به یک فایل متنی باید از توابع رشته ای و دستور StrToFile استفاده کنید.
کد:
path$='X:\myfile'
str$=EditBox$
retval=StrToFile(path$,str$,TRUE,TRUE)
 

vahid1352

Active Member
با تشکر دوست عزیز این فایل txt را در نظر بگیرید مثلا برنامه دارای 3 تا EditBox هست متن یا عدد وارده در قسمتی که 1 نوشته وارد بشه متن وارده در EditBox دوم در قسمتی که 2 هست وارد بشه والی آخر
 

پیوست ها

  • Text.txt
    30 بایت · بازدیدها: 13

evil_gates

اين نيز بگذرد ...
دوست عزیز
فکر میکنم منظورتون اینه که یک عبارت رو از یک فایل متنی فراخوانی کنید و بعد تقسیمش کنید به چند رشته کوچکتر درسته؟

اگه منظورتون رو درست متوجه شده باشم، فکر میکنم بهتره عبارت متنی یک قاعده مشخص برای جداشدن داشته باشه (مثلا تو همون فایل txt که شما ارسال کردید. 10 بار عدد 1، 10 بار عدد 2 و 10 بار عدد 3 تکرار شده. اگه این قاعده در طول رشته ثابت بمونه)

یا اگه قاعده فوق ثابت نیست و ممکنه طول یک زیررشته تغییر کنه. با یک کاراکتر خاص مثل # انتهای هر زیررشته رو مشخص کنید. (مثلا 3333333333#2222222222#1111111111 )

در اینصورت میشه با استفاده از متغیر آرایه ای و توابع رشته ای عبارت شما رو تقسیم کرد به چند زیر رشته و هر زیر رشته رو تو یک EditBox یا هرجای دیگه ای که مد نظرتون هست نمایش داد.

من دو تا کد برای دوتا روشی که بالاتر گفتم پیشنهاد میکنم.

1- اگه طول هر زیررشته مشخصه مثلا 10 بار عدد 1 و 10 بار عدد 2 و 10 بار عدد 3 و الی آخر
کد:
path$='x:\myfile.txt'
str$=StrFromFile(path$,1,1)
strlen=LEN(str$)/10
For i=1 To strlen
  substr$[i]=StrCopy(str$,1,10)
  str$=StrDel(str$,1,10)
  editbox$='EditBox'+CHAR(i)
  LoadText("editbox$","substr$[i]")
Next i

2- اگه طول زیر رشته مشخص نباشه و با یک کاراکتر خاص زیر رشته ها رو از هم جدا کرده باشید.
مثلا: '33333#2222222222#1111' = $str

کد:
path$='x:\myfile.txt'
str$=StrFromFile(path$,1,1)
str$=str$+'#'
x=GetArrayNum(str$,#)
For i=1 To x
  substr$[i]=GetArrayItem(str$,#,i)
  editbox$='EditBox'+CHAR(i)
  LoadText("editbox$","substr$[i]")
Next i

موفق باشید
 

mahdigh

Member
ممنونم از راهنمایی تون.
راستش داشتم به این نتیجه می رسیدم که طول رشته رو حساب کنم و اون رو دسته بندی کنم و ....
باسپاس فراوان.
 

vahid1352

Active Member
دوست عزیز evil_gates ممنون از راهنمایی تون منظور من ذخیره در فایل هست نه فراخوانی لطفا اگه میشه با مثال راهنمایی بفرمایین
ممنون میشم
 

evil_gates

اين نيز بگذرد ...
دوست عزیز evil_gates ممنون از راهنمایی تون منظور من ذخیره در فایل هست نه فراخوانی لطفا اگه میشه با مثال راهنمایی بفرمایین
ممنون میشم

برای ذخیره یک متغیر رشته در یک فایل متنی از دستورات StrToFile یا StrToLine استفاده کنید.

بعنوان مثال همون فرض پست قبلی رو در نظر بگیرید.

کد:
path$='X:\myfile.txt'
str$=EditBox1$+EditBox2$+EditBox3$
retval=StrToFile("path$","str$","True","True")
مقادیر بازگشتی از ادیت باکس های 1 و 2 و 3 تو یک متغیر رشته ای به نام str با هم جمع میشن تا یک رشته رو تشکیل بدن بعد این رشته به فایل متنی مورد نظر ارسال میشه.

نمیدونم تونستم متوجه منظورتون بشم یا نه
 

vahid1352

Active Member
ممنون دوست عزیز
منظورم همین بود ولی قسمت دیگه ی سوالم این بود که EditBox1 کاراکتر ش 10تا EditBox2 کاراکترش 20تا EditBox3 کاراکترش 10باشه
ممنون میشم اگه تو این مورد هم راهنمایی کنین
 

evil_gates

اين نيز بگذرد ...
دوست عزیز
کمی سوالتون بدون توضیحات دقیق تر گنگه. 10 کاراکتر 20 کاراکتر 30 کاراکتر یعنی اینکه ممکنه طول رشته ای که داخل یک EditBox قرارداره بیشتر از مثلا 10 کاراکتر باشه و شما قصد دارید فقط 10 کاراکتر اول اون رو جدا کنید؟

یا اینکه تو EditBox1 فقط 10 کاراکتر رو جدا کنید تو EditBox2 فقط 20 کاراکتر و ... رو جدا کنید.

لطفا یکم بیشتر توضیح بدید.

برای اینکه مقدار خاصی از یک رشته رو جدا کنید میتونید از StrCopy استفاده کنید.

کد:
newstr$=StrCopy(mystring$,from,number)

مقدار خاصی از یک رشته رو از یک نقطه و به تعداد کاراکتر مورد نظر جدا میکنید. و تو یک متغیر دیگه ذخیره میکنید. بعد به روشی که بالاتر گفتم سه تا رشته رو جمع میکنید و به فایل ارسال میکنید.
 

vahid1352

Active Member
سلام دوست عزیز
منظورم اینه تو EditBox1 فقط 10 کاراکتر رو جدا کنه و تو فایل کاراکتر ذخیره بشه وتوEditBox2 فقط 20 کاراکتر جدا شده ودر فایل بعد از 10 کاراکتر اولی 20کاراکتر ذخیره بشه والی آخر
ممنون
 

evil_gates

اين نيز بگذرد ...
از اين كد استفاده كنيد
کد:
path$='x:\myfile.txt'
For i=1 To (number of your editbox)
x=x+10
temp$='EditBox'+CHAR(i)+'$'
str$=StrCopy(temp$,1,x)
retval=StrToFile(path$,str$,True,True)
Next i
 

جدیدترین ارسال ها

بالا