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

مشکل در خواندن لیستی از مپ از فایل


mehran3d

سوال

سلام و خسته نباشید

من یه لیست از مپ ها دارم که در حالت عادی میتونم راحت مپ ها رو از لیست بخونم

اما وقتی لیست رو توی فایل با دستور file.writelist  ذخیره میکنم و با دستور  file.readlist  میخونمش نمیتونمم مپ ها رو بخونم

نمونه کد و ارور رو ملاحظه کنید

Sub Process_Globals
 
Dim list As List
Dim map,map2 As Map
End Sub

Sub Globals
 
End Sub

Sub Activity_Create(FirstTime As Boolean)
list.Initialize
map.Initialize
map.Put("keh1","val1")
	map.Put("keh2","val2")
	map.Put("keh3","val3")
	map.Put("keh4","val4")
	map2.Initialize
	map2.Put("keh1","val1")
	map2.Put("keh2","val2")
	map2.Put("keh3","val3")
	map2.Put("keh4","val4")
	list.Add(map)
	list.Add(map2)
	File.WriteList(File.DirInternal,"list.txt",list)
	list.Clear
	list=File.ReadList(File.DirInternal,"list.txt")
	For i=0 To list.Size-1
		Dim tempmap As Map
		map=list.Get(i)
		Log(map.Get("keh1"))
		Log(map.Get("keh2"))
		Log(map.Get("keh3"))
		Log(map.Get("keh4"))
	Next
End Sub

خروجی در لاگ بدون اینکه لیست رو توی فایل ذخیره کنم و بخونم

 

((( یعنی با حذف

	File.WriteList(File.DirInternal,"list.txt",list)
	list.Clear
	list=File.ReadList(File.DirInternal,"list.txt")

)))))

val1
val2
val3
val4
val1
val2
val3
val4

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

یعنی با استفاده از

	File.WriteList(File.DirInternal,"list.txt",list)
	list.Clear
	list=File.ReadList(File.DirInternal,"list.txt")
java.lang.ClassCastException: java.lang.String cannot be cast to anywheresoftware.b4a.objects.collections.Map$MyMap
	at test.list.main._activity_create(main.java:378)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
	at test.list.main.afterFirstLayout(main.java:102)
	at test.list.main.access$000(main.java:17)
	at test.list.main$WaitForLayout.run(main.java:80)
	at android.os.Handler.handleCallback(Handler.java:739)
	at android.os.Handler.dispatchMessage(Handler.java:95)
	at android.os.Looper.loop(Looper.java:135)
	at android.app.ActivityThread.main(ActivityThread.java:5254)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

نیاز دارم به ذخیره مپ ها در لیست که دیگه از دیتا بیس استفاده نکنم

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

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

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

خوب پیدا کردم

برای ذخیره و خوندن یک لیست از objects (مثلا مپ و بیت مچ یا.....)

باید از کتابخونه  randomaccessfile  استفاده کنید(کنم؟!)

که کد این شکل میشه

Dim ras As RandomAccessFile
	ras.Initialize(File.DirInternal,"list.dat",False)
	ras.WriteObject(list,True,0)
	ras.Close
	
	list.Clear
	ras.Initialize(File.DirInternal,"list.dat",False)
	list=ras.ReadObject(0)
	ras.Close


به جای 


File.WriteList(File.DirInternal,"list.txt",list)
	list.Clear
	list=File.ReadList(File.DirInternal,"list.txt")

 

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

بایگانی شده

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

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

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