PDA

View Full Version : خطا یابی کد



mmssoft
شنبه 10 مرداد 1388, 02:05 صبح
لطفا بگید کد زیر چه اشکالی داره که Error میده :
متن خطا : Type mistmatch


Open "SET2.txt" For Input Access Read As #1
Line Input #1, SaveText1
Close #1

Shape1.FillColor = SaveText1

l4tr0d3ctism
شنبه 10 مرداد 1388, 02:41 صبح
ببین فایل txt قبلا ایجاد شده چون این فرمان نمی تونه فایل بسازه برای خواندن فایل هست

mmssoft
شنبه 10 مرداد 1388, 02:51 صبح
ببین فایل txt قبلا ایجاد شده چون این فرمان نمی تونه فایل بسازه برای خواندن فایل هست

بله. فایل txt قبلا ایجاد شده. مشکل از اینجا نیست. لطفا راهنمایی کنید.
اگر کد تصحیح شده را دارید بگذارید.

alih110
شنبه 10 مرداد 1388, 03:52 صبح
سلام به شما دوست عزیز

کد صحیح :



Open App.Path & "\ali.txt" For Input Access Read As #1
Line Input #1, Savetext1
Close #1
Text1.Text = Savetext1

mmssoft
شنبه 10 مرداد 1388, 03:58 صبح
آقای alih110 این کد هم همون ارور رو میده.
ببینید من در مسیر خود برنامه یک فایل تکست دارم که عبارت (RGB (247, 247, 247 داخلش نوشته شده.
من میخوام وقتی فرم اجرا میشه محتویات فایل تکست رو توی FillColor شیء Shape1 قرار بدم.
لطفا کمک کنید.

alih110
شنبه 10 مرداد 1388, 12:07 عصر
آره خطا میده فعلا که هر کاری کردم جواب نداد . ولی روش کار میکنم .

HjSoft
شنبه 10 مرداد 1388, 13:36 عصر
چرا از عبارت access استفاده كرده ايد ؟ به اين صورت هم امكان پذير هست .

Open App.Path & "\ali.txt" For Input As 1

alih110
شنبه 10 مرداد 1388, 13:43 عصر
نه جناب Wolf-Sky مشکل از اونجا نیست مشکل این هست که نمیشه رنگ یک شي رو
از یک متن یا تکست باکس داد . باید برای این یک راه حل پیدا کرد .

alih110
شنبه 10 مرداد 1388, 14:03 عصر
من هر کاری کردم نشد ولی یه راهی به ذهنم میرسه ولی شاید برای شما کارساز نباشه
راهش اینه هست که رنگ ها رو تعریف کنی که اینطوری هم رنگ ها محدود میشه .



Open App.Path & "\ali.txt" For Input Access Read As #1
Line Input #1, Savetext1
Close #1
If Savetext1 = "RGB(100,100,100)" Then Shape1.FillColor = RGB(100, 100, 100)

mmssoft
شنبه 10 مرداد 1388, 14:18 عصر
من هر کاری کردم نشد ولی یه راهی به ذهنم میرسه ولی شاید برای شما کارساز نباشه
راهش اینه هست که رنگ ها رو تعریف کنی که اینطوری هم رنگ ها محدود میشه .

این راه کارساز نیست. لطفا کمک کنید. خیلی مهمه.

xxxxx_xxxxx
شنبه 10 مرداد 1388, 15:12 عصر
سلام،
برنامه رو خط به خط اجرا كنيد اگر روي اين دستور ارور داد:


Line Input #1, SaveText1
معنيش اينه كه محتواي فايل متني قابل خوندن نيست و از اونجايي كه نوع متغير Savetext1 رو تعريف نكرديد پس هيچ كدام از انواع داده در VB نمي تونند محتواي فايل متني رو ساپورت كنند.
احتمالاً محتواي فايل، باينري هست.

اگر روي اين خط ارور داد:


Shape1.FillColor = SaveText1

يعني شما داده اي به غير از عدد داريد به fillcolor اختصاص ميديد. دقت كنيد كه FillColor فقط عدد قبول ميكنه.

mmssoft
شنبه 10 مرداد 1388, 15:25 عصر
روی خط Shape1.FillColor = SaveText1 ارور داد.
ولی محتوای فایل تکست من اینه :


(RGB (247, 247, 247

xxxxx_xxxxx
شنبه 10 مرداد 1388, 15:36 عصر
روی خط Shape1.FillColor = SaveText1 ارور داد.
ولی محتوای فایل تکست من اینه :


(RGB (247, 247, 247
پس شما داريد به FillColor يك رشته ميديد. دقت كنيد اون نمي فهمه كه محتواي فايل يك دستور هست. شما بايد مقادير R و G و B رو از محتواي فايل استخراج كنيد. و بعد با استفاده از تابع RGB مقادير رو به FillColor بديد. به اين صورت:


Open "SET2.txt" For Input Access Read As #1
Line Input #1, SaveText1
Close #1
x = InStr(1, SaveText1, "(")

r = Val(Mid(SaveText1, x + 1))
g = Val(Mid(SaveText1, x + 3 + Len(r)))
b = Val(Mid(SaveText1, x + 5 + Len(r) + Len(g)))
Shape1.FillColor = RGB(r, g, b)