آموزش ساخت اپلیکیشن تبدیل صدا به متن در B4A – جلسه نهم
سلام
با نهمین جلسه ی آموزشی ساخت اپلیکیشن تبدیل صدا به متن در بیسیک فور اندروید در خدمتتون هستیم؛ در این قسمت قصد داریم تا نحوه کار با کتابخانه RichString ، چگونه یک فایل txt بسازیم و … را یاد بگیریم، در ادامه همراه بپرسم باشید.
در این جلسه یادخواهید گرفت:
چگونه کلمه ای را در متن جستجو کنید و خط هایی که کلمه مورد نظر در آن ازش استفاده شده است ببینید.
تعیین اندازه فاصله بین خطوط در یک لیبل
ایجاد یک فایل txt از متن
چگونه کلمه ای را در متن جستجو کنید و خط هایی که کلمه مورد نظر در آن ازش استفاده شده است ببینید
ممکن است یک لیبل داشته باشید که برای نمایش یک متن طولانی از آن قرار است، استفاده کنید.
حال شما میخواهید به کاربر این اجازه را بدهید تا یک کلمه وارد یک جعبه متن کند و با زن دکمه ای، برنامه بگوید که چندتا از کلمه وارد شده، در متن وجود دارد.
- برای این کار ابتدا کتابخانه RichString را علامت میزنیم.
- سپس آن را تعریف میکنیم:
۱ |
Dim rs As RichString |
- البته قبل از این می آییم و یک تابع تعریف میکنیم تا تک تک، خطوط را شناسایی کند.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ |
Private Sub findLine(word As String,text As String) As String Dim lbl As Label lbl.Initialize("") Dim allLine() As String=SplitText(text) Dim strbuild As StringBuilder strbuild.Initialize For Each line As String In allLine If line.Contains(word) Then strbuild.Append(line).Append(CRLF) End If Next Return strbuild.ToString End Sub |
- سپس دو متغیر تعریف کرده و اینگونه متن و خط ها را داخل آن ها میریزیم:
۱ ۲ |
Dim Text As String=lbl_text.Text Dim rezult As String=findLine(txt_title.Text,Text) |
- حالا ابتدا چک میکنیم که طول متن هایی که در متغیر result هست، بیشتر از یک حرف باشد(یعنی متغیر خالی نباشد).
- سپس با استفاده از این خط به جداسازی کلمات و جایگزینی کلمات میپردازیم.
۱ ۲ ۳ ۴ ۵ |
If rezult.Length>۰ Then rezult = rezult.Replace(txt_title.Text,"{R}"&txt_title.Text&"{R}") Else ToastMessageShow("هیچ مورد مشابهی پیدا نشد!",True) End If |
- سپس دستورات زیر را هم به بدنه شرط اضافه میکنیم:
۱ ۲ ۳ ۴ ۵ ۶ |
Dim rs As RichString rs.Initialize(rezult) rs.Color2(Colors.White, "{R}") rs.Style(rs.STYLE_BOLD,۰,rs.Length) lblresult.Text = rs lblresult.Height=su.MeasureMultilineTextHeight(lblresult,lblresult.Text) |
با استفاده از این دستورات، خط هایی که در آن از کلمه مورد نظر استفاده شده است را در لیبل lblresult نمایش داده میشود.
تعیین اندازه فاصله بین خطوط در یک لیبل
- برای تعیین اندازه فاصله بین خطوط یک لیبل، کافی است تا از تکه دستور زیر استفاده کنید:
۱ ۲ ۳ |
Private r As Reflector r.Target=lbl_text r.RunMethod3("setLineSpacing",۱,"java.lang.float",۱.۵,"java.lang.float") |
در این دستور، لیبل مورد نظرمان که در آن متن نوشته شده است، lbl_text است و در خط آخر، پارامتر سومی، تعیین اندازه بین خطوط لیبل است که در این جا ۱.۵ است.
ایجاد یک فایل txt از متن
برای ایجاد یک فایل متنی از لیبل یا نوشته ای در برنامه به روش زیر عمل کنید:
- برای این کار میتوانید از دستور WriteString از کتابخانه File استفاده کنید. به این صورت:
۱ |
File.WriteString(run.GetSafeDirDefaultExternal("")&"/voicetotext",DateTime.Now&"-"&txt_title.Text&".txt",lbl_text.Text) |
در این خط آمدیم، یک فایل با پسوند txt را در پوشه voicetotext که داخل حافظه داخلی ساخته شده است را ذخیره کردیم.
متن این فایل از لیبل lbl_text گرفته شده است و نام فایل با استفاده از کتابخانه DateTime ساخته شده است.
آموزش را همینجا به پایان می رسانیم، همراه ما باشید با ادامه آموزش ها …
مشکلی یا سوالی داشتید میتوانید در بخش پرسش و پاسخ سایت، سوال خود را بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید