PDA

View Full Version : ایجاد یک متن متغیر درون یک متن ثابت



hamalous
پنج شنبه 01 خرداد 1393, 18:37 عصر
سلام من چطور می تونم یک متن متغیر رو درون یک متن ثابت وارد کنم یه مثال می زنم :
فرض کنید نوشته من بصورن زیر است :
aaa bbb ddd =1 e= f= a=b c=d
فرض کنید این نوشته ثابتمه حالا من می خوام تو دو تا تکست باکس هر چی وارد می کنم بره بعد از =e و =f بطور مثال اگه تو تکست باکس 1 نوشتم 2 و تو تکست باکس 2 نوشتم 3 خروجی بصورت زیر بشه
aaa bbb ddd =1 e=2 f=3 a=b c=d
از دوستان اگه کسی می تونه لطفا راهنمایی کنه ممنون

Mori Bone
پنج شنبه 01 خرداد 1393, 18:49 عصر
txt1.selstart=4;
txt1.sellength=0;
فکر کنم ابنو تو رویداد mouse down بنویسی حله. البته بجای 4 عدد مورد نظرتو بنویس

vbhamed
پنج شنبه 01 خرداد 1393, 19:57 عصر
سلام
Dim s$
s = "aaa bbb ddd =1 e= f= a=b c=d"
s = Replace(s, "e=", "e=" & text1)
s = Replace(s, "f=", "f=" & text2)
MsgBox s

hamalous
شنبه 03 خرداد 1393, 14:39 عصر
ممنون دوست عزیز ببخشید اگه سوالم مبتدیه من برای این کار از یه روش بصورت زیر استفاده کردم که بعد از انجام اون خروجی رو توی textbox3 نمایش میده فقط یه مشکل دارم اونم اینه که نمیدونم که چطور عبارت بعدی رو زیر اون نمایش بده:
Private Sub Command1_Click()
Dim a As String
a = "aaa bbb ccc h=" + Text1.Text + Space(1) + "w=" + Text2.Text
End If
Text3 = a
End Sub
فرضا در مثال بالا اگه توی تکست 1 ،عدد 2 و توی تکست 2 عدد 3 رو وارد کنم خروجی توی تکست باکس 3 میشه این
aaa bbb ccc h=1 w= 3
حالا من می خوام اعداد بعدی رو که وارد کنم زیر همین قرار بگیره مثلا توی تکست باکس 1 وارد کنم 56 و توی تکست باکس 2 وارد کنم 100 خروجی بشه این :
aaa bbb ccc h=1 w= 3
aaa bbb ccc h=56 w=100
و همینطور الی آخر نمی دونم منظورمو رسوندم یا نه ممنون

vbhamed
شنبه 03 خرداد 1393, 17:36 عصر
سلام
دستور یکی به آخر رو اینطوری بنویسید
Text3 = Text3 & a & vbCrLf

hamalous
سه شنبه 06 خرداد 1393, 00:12 صبح
سلام شرمنده یه سوال کوچیک چطور می تونم از کلید اینتر به جای کلیک موس استفاده کنم یعنی مثلا من یه تکست باکس دارم برای ورود اطلاعات و یه باتن حالا می خوام به جای اینکه روی باتن با موس کلیک کنم از اینتر استفاده کنم ممنون

vbhamed
سه شنبه 06 خرداد 1393, 07:02 صبح
سلام
خاصیت Default دکمه رو True کنید

hamalous
پنج شنبه 08 خرداد 1393, 19:51 عصر
سلام اگه بخوام عملیاتی که در بالا گفتم رو روی فایل تکست انجام بدم چه کارباید بکنم فرض کنید من یه فایل تکست دارم که دو ستون اعداد بصورت زیر داره :
12 14
17 18
19 20
و همین طور الی آخر حالا من میخوام با لود کردن فایل تکست ، اعداد تو متن ثابتم قرار بگیره فرضا اگه متن ثابتم :
aaa bbb ccc w= g= sss qqq
باشه خروجی بهصورت زیر باشه :
aaa bbb ccc w=14 g=12 sss qqq
aaa bbb ccc w=18 g=17 sss qqq
aaa bbb ccc w=20 g=19 sss qqq
من فایل رو لودمی کنم اما نمی تونم عبارات را در جاهایی که می خوام قرار بدم لطفا اگه میشه فقط توابع و مراحلی رو که لازم دارم رو بهم بگید و از قرار دادن سورس خودداری کنید اگه سوالی داشتم بازهم مزاحمتون میشم ممنون بابت صبر و تحملتون و زحمتتون

hamalous
شنبه 10 خرداد 1393, 00:06 صبح
سلام دوستان من یه فایل تکست دارم که دارای دو ستون عدد هست که می خوام تو یه عبارت ثابت قرار بگیره من یه کد براش نوشتم تا حدی درست عمل میکنه ولی مشکل من تو ستون دوم هست یعنی می خوام ستون دوم بعد از عبارت =q قرار بگیره ممنون میشم راهنمایی کنید سورس رو ضمیمه می کنم

vbhamed
شنبه 10 خرداد 1393, 00:11 صبح
سلام
Private Sub Command_Click()

FileNumber = FreeFile
Open "Help.txt" For Input As #FileNumber

While Not EOF(FileNumber)

Line Input #FileNumber, strinput
Dim s() As String
s = Split(strinput, vbTab)
stroutput = stroutput & "aaa bbb ccc=1 w=" & s(0) & " q=" & s(1) & vbCrLf

Wend

Close #FileNumber

Text1 = stroutput

End Sub

vbhamed
یک شنبه 11 خرداد 1393, 06:17 صبح
سلام
برنامه و فایلتون رو بزارید

hamalous
یک شنبه 11 خرداد 1393, 12:02 عصر
سلام
برنامه و فایلتون رو بزارید

ممنون دوست عزیز مشکل حل شد یه سوال دیگه چطور میشه با آپلود فایل فقط آدرس فایل توی تکست باکس نمایش داده بشه ؟ بابت صبر و تحمل و راهنماییتون یک دنیا ممنون

vbhamed
یک شنبه 11 خرداد 1393, 12:25 عصر
سلام
سوالتون نامفهومه، آپلود در کجا ؟ چطوری ؟ با چه کنترلی ؟

hamalous
یک شنبه 11 خرداد 1393, 23:54 عصر
سلام
من واقعا شرمنده شمام
منظورم با common dialoge بود شاید بهتر باشه مثال بزنم فرض کنید یک تکست باکس و یک باتن دارم که بوسیله اون فایل رو آپلود می کنم حالا می خوام توی تکست باکسم آدرس فایلی که آپلود شده قرار بگیره یعنی اگه فایلم توی درایو c و توی یک پوشه به نام newfolder باشه توی تکست باکس بشه c:/newfolder
دو تا سوال دیگه اگه لطف کنید و جواب بدین ممنون میشم

1 - اگه چند تا فرم داشته باشم چطور می تونم مشخص کنم موقع اجرای برنامه کدام فرم اول باز بشه مثلا دو تا فرم به نام form1 و form2 دارم ، حالا من می خوام بعد از اجرای برنامه اول فرم 2 باز بشه

2 - سوال آخرم اینه که کد default کردن باتن چیه؟

یک دنیا ممنون

vbhamed
دوشنبه 12 خرداد 1393, 11:31 صبح
سلام

جواب سؤال 1 :
CommonDialog1.ShowOpen
text1 = CommonDialog1.FileName

براي سؤال دوم منوي Project رو باز كنيد و گزينه آخر يعني Project.. Properties رو بزنيد، سپس از قسمت Startup Object مي‌تونيد فرمي كه برنامه اول اون رو Load مي‌كنه تعيين كنيد

براي سؤال سوم هم خاصيت Default دكمه رو True كنيد

hamalous
چهارشنبه 14 خرداد 1393, 11:36 صبح
سلام

جواب سؤال 1 :
CommonDialog1.ShowOpen
text1 = CommonDialog1.FileName

براي سؤال دوم منوي Project رو باز كنيد و گزينه آخر يعني Project.. Properties رو بزنيد، سپس از قسمت Startup Object مي‌تونيد فرمي كه برنامه اول اون رو Load مي‌كنه تعيين كنيد

براي سؤال سوم هم خاصيت Default دكمه رو True كنيد

سلام ممنون بابت وقتی که گذاشتید ولی پاسخ سوال سوم ، من چون چند تا دکمه دارم نمی تونم از خاصیت default دکمه استفاده کنم و به همین دلیل می خوام از کد برای اینکار استفاده کنم یه سوال دیگه هم داشتم :
فرض کنید یه تکس باکس دارم که 10 خط جا میگیره و یه باتن که با کلیک روی اون 1 خط توی تکست باکس نوشته میشه ، حالا بعد از اینکه 10 خط توی تکست باکس نوشته شد، یازدهمین خط توی تکست باکس اضافه میشه ولی نمایش داده نمیشه به طور کلی می خوام هر وقت خط اضافه کنم نمایش داده بشه یعنی با اضافه شدن خط اسکرول بار تکست باکس بره به سمت پایین بازهم بابت راهنمایی و زحممتتون ممنون

vbhamed
پنج شنبه 15 خرداد 1393, 20:05 عصر
سلام
خب وقتی خاصیت Default، یک دکمه رو دکمه پیش فرض می‌کنه، تو کد هم میشه ازش استفاده کرد
هر جا خواستید دستوری مشابه این بنویسید
Command1.Default = True

بابت سوال دوم هم در کد کلیک دکمه دستور زیر رو بعد از اضافه شدن متن به تکست باکس بنویسید
Text1.SelStart = Len(Text1)

hamalous
پنج شنبه 15 خرداد 1393, 22:28 عصر
عالی بود دوست عزیز یک دنیا ممنون شرمنده یه سوال دیگه من کد زیر رو برای ذخیره کردن دارم :
cmdg6.Filter = "*.txt | *.txt |*.xls|*.xls"
On Error Resume Next
Dim filepath As String
cmdg6.ShowSave
filepath = cmdg6.FileName
Open filepath For Output As #6
Print #6, FlatEdit
Close #6
به زبون ساده مشکل من اینه که می خوام این دکمه به عنوان save عمل کنه نه save as ، چه تغییری باید داخل کد بدم , و در مورد کدی که بالا دادین به جای command1 اسم دکمه رو باید ینویسم؟ ممنون

vbhamed
پنج شنبه 15 خرداد 1393, 23:37 عصر
سلام
خب اگر Save As نمی‌خواین دیگه نیازی به CommonDialog هم نیست و اسم فایل رو خودتون باید بدید
On Error Resume Next
Dim filepath As String
filepath = "c:\test.txt"
Open filepath For Output As #6
Print #6, FlatEdit
Close #6

در مورد دوم هم بله اسم دکمه رو بنویسید

hamalous
جمعه 16 خرداد 1393, 00:16 صبح
ممنون من می خوام پنجره show saveباز بشه ولی فقط برای اولین بار که می خوام فایل رو ذخیره کنم مساله اینجاست که من یه فایل رو ذخیره می کنم بعد یه تغییر که توی متن میدم دکمه رو که برای saveمی زنم دوباره پنجره show saveباز میشه در صورتی که توی برنامه ها به این شکل نیست و پس از ذخیره متن با هر بار تغییر متن کافیه دکمه saveرو برای ذخیره بزنی نمی دونم منظورم رو درست بیان کردم یا نه در مورد کد زیر که زحمتشو کشیدین:
Command1.Default = True



من یه سورس کوچیک میذارم توی این سورس می خوام با setfocus کردن تکست باکس روبروی دکمه A و B همون دکمه به حالت انتخاب در بیاد و دیگه لازم نباشه روی دکمه کلیک کنم و با کلید اینتر این کار رو انجام بدم ولی با فرمان بالا نمیتونم نشد توی سایت آپ کنم ممنون
http://uploadazad.com/uploads/rlbu_form.rar

vbhamed
پنج شنبه 12 تیر 1393, 09:23 صبح
سلام
اینکار رو شما خودتون باید برنامه نویسی کنید
یک متغیر رشته ای عمومی بالای فرم برای اسم فایل تعریف کنید و موقع ذخیره اگر اون متغیر توش خالی بود پنجره Save رو نشون بدین و بعد از انتخاب فایل، نام فایل رو درون اون بنویسید ولی اگر متغیر خالی نبود یعنی قبلا اسمش گرفته شده و دستور CommonDialog1.ShowSave نیاز نیست
اگر هم برنامتون دکمه جدید داره که یک فایل جدید باید ایجاد بشه در کد اون دکمه متغیر عمومی رو برابر "" قرار بدین تا موقع ذخیره پنجره ثبت نمایش داده بشه

در مورد دوم هم فایل ضمیمه شد