رفتن به مطلب
  • 0

مشکل در خواندن فایل، جمع کردن عدد و ذخیره آن


Tile Soft

سوال

سلام وقت بخیر.

بنده برنامه ای رو میخوام بنویسم که یه فایل تکست که داخلش یه عدد هست رو ابتدا دانلود میکنه > بعد اون رو میخونه > به علاوه 1 میکنه > و دوباره ذخیره میکنه.

تا مرحله دانلود همه چیز درست پیش میره اما برای خواندن و عملیات جمع دچار خطا میشه

Sub Globals
	Dim NumberVar As Int
	Dim NumberMath As Int
End Sub

Sub Button1_Click
	Dim j As HttpJob 'redim and initialize
	j.Initialize("", Me)
	j.Download("https://x.ir/number.txt")
	Wait For (j) JobDone(j As HttpJob)
	If j.Success Then
		Dim out1 As OutputStream = File.OpenOutput(File.DirInternal, "number.txt", False)
		File.Copy2(j.GetInputStream, out1)
		out1.Close '<------ very important
		If File.Exists(File.DirInternal, "number.txt") = True Then
			Log("yes")
			NumberVar=File.ReadString(File.DirInternal, "number.txt")
			Log(NumberVar)
			NumberMath=NumberVar+1
            File.WriteString(File.DirInternal, "number.txt", NumberMath)
			Log(NumberMath)
		End If
		'StartActivity(Post_Publish)
	End If
	j.Release
End Sub

و خطایی که دریافت میکنم این هست:

number_download$ResumableSub_Button1_Clickresume (java line: 450)
java.lang.NumberFormatException: empty String
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.lang.Double.parseDouble(Double.java:538)
	at lila.project.number_download$ResumableSub_Button1_Click.resume(number_download.java:450)
	at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:267)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:207)
	at anywheresoftware.b4a.keywords.Common$11.run(Common.java:1178)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:224)
	at android.app.ActivityThread.main(ActivityThread.java:7561)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)

ممنون بابت راهنمایی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

در 3 ساعت قبل، Tile Soft گفته است :

سلام وقت بخیر.

بنده برنامه ای رو میخوام بنویسم که یه فایل تکست که داخلش یه عدد هست رو ابتدا دانلود میکنه > بعد اون رو میخونه > به علاوه 1 میکنه > و دوباره ذخیره میکنه.

تا مرحله دانلود همه چیز درست پیش میره اما برای خواندن و عملیات جمع دچار خطا میشه

و خطایی که دریافت میکنم این هست:

ممنون بابت راهنمایی

سلام و درود. خطا که مشخصه عزیز. NumberFormatException یعنی اینکه رشته ای که شما اونو عدد درنظر گرفتین یا خالیه یا توش حروف الفایی چیزی هست. حتما محتوای فایل دانلودی رو چک کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، Tile Soft گفته است :

سلام وقت بخیر.

بنده برنامه ای رو میخوام بنویسم که یه فایل تکست که داخلش یه عدد هست رو ابتدا دانلود میکنه > بعد اون رو میخونه > به علاوه 1 میکنه > و دوباره ذخیره میکنه.

تا مرحله دانلود همه چیز درست پیش میره اما برای خواندن و عملیات جمع دچار خطا میشه


Sub Globals
	Dim NumberVar As Int
	Dim NumberMath As Int
End Sub

Sub Button1_Click
	Dim j As HttpJob 'redim and initialize
	j.Initialize("", Me)
	j.Download("https://x.ir/number.txt")
	Wait For (j) JobDone(j As HttpJob)
	If j.Success Then
		Dim out1 As OutputStream = File.OpenOutput(File.DirInternal, "number.txt", False)
		File.Copy2(j.GetInputStream, out1)
		out1.Close '<------ very important
		If File.Exists(File.DirInternal, "number.txt") = True Then
			Log("yes")
			NumberVar=File.ReadString(File.DirInternal, "number.txt")
			Log(NumberVar)
			NumberMath=NumberVar+1
            File.WriteString(File.DirInternal, "number.txt", NumberMath)
			Log(NumberMath)
		End If
		'StartActivity(Post_Publish)
	End If
	j.Release
End Sub

و خطایی که دریافت میکنم این هست:


number_download$ResumableSub_Button1_Clickresume (java line: 450)
java.lang.NumberFormatException: empty String
	at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
	at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.lang.Double.parseDouble(Double.java:538)
	at lila.project.number_download$ResumableSub_Button1_Click.resume(number_download.java:450)
	at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:267)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:207)
	at anywheresoftware.b4a.keywords.Common$11.run(Common.java:1178)
	at android.os.Handler.handleCallback(Handler.java:883)
	at android.os.Handler.dispatchMessage(Handler.java:100)
	at android.os.Looper.loop(Looper.java:224)
	at android.app.ActivityThread.main(ActivityThread.java:7561)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)

ممنون بابت راهنمایی

سلام،

دوست عزیز اصلا لازم نیست که ابتدا عدد رو ذخیره کنید بعد اونو بخونید بعد یکی بهش اضافه کنید بعد دوباره ذخیره کنید!!

شما میتونید به این شکل استفاده کنید:

Private a As float

a=job.getstring

a=a+1

File.writestring(file.dirinteral,x.txt,a)

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

Log(job.getstring)

احتمالا نمیتونه جمع بزنه

موفق باشید:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...