PDA

View Full Version : مشکل در آدرسی دهی Image



اوبالیت به بو
یک شنبه 16 دی 1386, 09:38 صبح
یه مشکلب برام پیش اومده اونم اینکه من حدود 100 تا عکس دارم که تویه پوشه های مختلف وجود داره و پوشه های من با نام فرسی نامگذاری شده اند.
حالا من 3 تا لیست تویه فرم دارم که تو یکی اسم فهرست هاست. وقتی کاربر رویه فهرست ها کلیک میکنه لیسن پایینی اسم شاخه های مربوط رو نشون میده و وقتی رویه شاخه ها می نویسه: عکس شماره 1 - عکس شماره 2......
بعضی از شاخه هام 5 تا عکس بعضی ها 3 تا بستگی داره به تعدادشون. حالا تا اینجا مشکلی نیست. مشکل وقتی هستش که رویه آخرین لیست کلیک می کنم می خوام تویه یه Image یا picture عکس مربوطه رو نمایش بده. از تابع App.Path استفاده می کنم ولی vb نمیتونه عکس ها رو نمایش بده و خطا میده. چی جوری می تونم که آدرس صحیح رو بدم؟؟؟؟؟

DoctorJay
یک شنبه 16 دی 1386, 10:16 صبح
جناب obalitjoOon اگه سورس این سیستم عکس گذاشتنو آپ کنی ببینیمش خیلی

بهتر میتونیم کمکت کنیم .

این قسمت از کارتون که دچار مشکل شده رو توی یه پروژه مستقل انجام بدین و آپ کنید

اینجوری بهتر نیست ؟؟ :لبخندساده:

sinpin
یک شنبه 16 دی 1386, 11:21 صبح
یه مشکلب برام پیش اومده اونم اینکه من حدود 100 تا عکس دارم که تویه پوشه های مختلف وجود داره و پوشه های من با نام فرسی نامگذاری شده اند.
حالا من 3 تا لیست تویه فرم دارم که تو یکی اسم فهرست هاست. وقتی کاربر رویه فهرست ها کلیک میکنه لیسن پایینی اسم شاخه های مربوط رو نشون میده و وقتی رویه شاخه ها می نویسه: عکس شماره 1 - عکس شماره 2......
بعضی از شاخه هام 5 تا عکس بعضی ها 3 تا بستگی داره به تعدادشون. حالا تا اینجا مشکلی نیست. مشکل وقتی هستش که رویه آخرین لیست کلیک می کنم می خوام تویه یه Image یا picture عکس مربوطه رو نمایش بده. از تابع App.Path استفاده می کنم ولی vb نمیتونه عکس ها رو نمایش بده و خطا میده. چی جوری می تونم که آدرس صحیح رو بدم؟؟؟؟؟

1- نامگذاری فارسی فایلها و پوشه ها کار درستی نیست.
2- من فکر میکنم زمانی که برنامه رو از روی سی دی اجرا میکنید مشکل دارید، درسته ؟
در مورد App.path یک نکته هست : وقتی برنامه از روی CD اجرا بشه یک "\" آخرش اضافه میکنه و زمانی که از روی هارد اجرا میشه اون "\" رو خودتون باید اضافه کنید. پس بصورت مستقیم از App.path استفاده نکنید و بقول معروف Wrap اش کنید یعنی یک تابع بنویسید به این شکل و همه جا از اون استفاده کنید:

Public Function AppPath() As String
Dim path As String
path = App.path
If Right(path, 1) <> "\" Then
path = path + "\"
End If
AppPath = path
End Function

اوبالیت به بو
یک شنبه 16 دی 1386, 13:09 عصر
مشکلم حل شد. من از مورد 1 شما استفاده کردم و دلیلش رو هم فهمیدم. من برای هر پوشه نام مشخصی تععین کرده بودم و وقتی از نوار AddressBar آدرس دقیق عکس رو که تویه پوشه ها مختلف بود،وقتی تعداد کاراکترها رو شمردم متوجه شدم که بیشتر از 255 کاراکتر هست و همون طور که می دونید نوار AddressBar بیشتر از 255 تا کاراکتر رو پشتیبانی نمیکنه!!!!

اوبالیت به بو
سه شنبه 18 دی 1386, 19:11 عصر
حالا اگر من بخوام این رو به صورت Setup در بیارم و رویه CD بزنم حتما باید تمام عکس ها رو هم ضمیمه CD کنم دیگه؟ درسته؟

sinpin
سه شنبه 18 دی 1386, 20:42 عصر
حالا اگر من بخوام این رو به صورت Setup در بیارم و رویه CD بزنم حتما باید تمام عکس ها رو هم ضمیمه CD کنم دیگه؟ درسته؟
بله - اگه میخواین قابل دستیابی توسط دیگران نباشند اونها رو کد شده کنار برنامه بزارید

اوبالیت به بو
سه شنبه 18 دی 1386, 20:50 عصر
چی جوری کد شده بزارم؟من بلد نیستم!!

sinpin
چهارشنبه 19 دی 1386, 22:10 عصر
چی جوری کد شده بزارم؟من بلد نیستم!!
باور کنید خیلی تو این سایت مطرح شده - یه جستجوی کوچولو انجام بدید.

در هر صورت
توضیح به ساده ترین شکل : با یه الگوریتم رمزنگاری متقارن فایلتون رو رمز میکنید و میزارید کنار برنامه. (پس اون فایل به درد کسی نمیخوره چون اطلاعاتش بهم ریخته. مثلا اگه عکس بوده دیگه قابل نمایش نیست) بعد توی برنامه هر موقع اون فایل رو لازم داشتید (فرضا اگه یک فایل صوتی است : قبل از پخش) اون رو به حالت قبلی برمیگردونید و جایی موقت روی هارد ذخیره میکنید و کارتون که تموم شد حذفش میکنید.
اینجا هم یک مثال هست :
http://www.dreamincode.net/code/snippet430.htm

اوبالیت به بو
جمعه 21 دی 1386, 17:41 عصر
هیچی از این سایت نفهمیدم. اگه میشه یه منبع فارسی برام بزارین چون از هرکس سوال می کنم یه جوابی میده. البته یه نفر به من گفت که با بعضی از نرم افزار ها میشه این کار رو کرد ولی اسم برنامش رو نگفت.

مبین رنجبر
جمعه 21 دی 1386, 19:01 عصر
این کد هایی که اینجا میزارم الگوریتم کد کردن اطلاعات بود که توی سایتی که آقا سینه معرفی کردند بود .. هنوز خودم تستش نکردم ..در ضمن چون بعضی از دوستان واسه رفتن به این سایت مشکل داشتند کدهعارو بصورت مستقیم اینجا گذاشتم


Sub FileEncodeAndDecode(InputFile As String, OutputFile As String, PasswordKey As String)

Dim temp As Single
Dim Char As String * 1
Dim XORMask As Single
Dim temp1 As Integer

Open InputFile For Binary As #1
Open OutputFile For Binary As #2

For x = 1 To Len(PasswordKey)
temp = Asc(Mid$(PasswordKey, x, 1))
For y = 1 To temp
temp1 = Rnd
Next y

' Re-seed to throw off prying eyes
Randomize temp1
Next x


Counter = 0
For z = 1 To FileLen(InputFile)

'Generate random mask
XORMask = Int(Rnd * 256)

'Get the char & change it
Get 1, , Char
Char = Chr$((Asc(Char) Xor XORMask))
Put 2, , Char

Counter = Counter + 1
If Counter > Len(PasswordKey) Then Counter = 1

' Pull random numbers from the hat
For x = 1 To (Asc(Mid$(PasswordKey, Counter, 1)) * 2)
temp = Rnd
Next x
Next z


Close #1
Close #2

End Sub

Private Sub Command1_Click()

Dim InputFile As String
Dim OutputFile As String
Dim PasswordKey As String

InputFile = InputBox("Enter a filename to encode")
OutputFile = InputBox("Enter the new filename this will become ")
PasswordKey = InputBox("Enter the password (key)")

Call FileEncodeAndDecode(InputFile, OutputFile, PasswordKey)

MsgBox "File written to " + OutputFile
End
End Sub

Private Sub Form_Load()

Command1.Caption = "Code/Decode"

End Sub

اوبالیت به بو
جمعه 21 دی 1386, 19:03 عصر
یه سوال: یعنی اگر من این برنامه رو به صورت Install ساختم و بعد رو CD زدم و عکسهارو هم ضمیمه CD کردم اگر یه کاربر بره تو CD و خودش پوشه عکسها رو باز کنه نمی تونه این عکس ها رو ببینه؟

مبین رنجبر
جمعه 21 دی 1386, 19:10 عصر
نه نمیتونه .. چون کد شده هست

M8SPY_OK
جمعه 21 دی 1386, 20:59 عصر
البته من فکر نمی کنم تعداد "\" ها تاثیری داشته باشه .

در واقع این دوتا هیچ فرقی با هم ندارن :
open app.path & "\"

open app.path & "\\"