มีช่องว่างในที่ตั้งพาธไฟล์แล้วรูปไม่แสดง
กระทู้เก่าบอร์ด อ.Yeadram

 1,644   2
URL.หัวข้อ / URL
มีช่องว่างในที่ตั้งพาธไฟล์แล้วรูปไม่แสดง

คือผม ต้องการเปิด รูปภาพ ด้วยโปรแกรมนึง จึงใช้คำสั่งนี้
ให้เมื่อเราคลิกก็ให้เปิดโปรแกรม FastStone ขึ้นมาแล้วเปิดไฟล์รูปภาพตามที่อยู่ของมัน
ทีนี้มันเกิดปัญหาตรงที่ว่า ถ้าที่อยู่ของไฟล์ภาพ ตั้งแต่ต้นทางมาเลย มีช่องว่างปนอยู่ด้วย มันจะเปิดตัวโปรแกรมขึ้นมาอย่างเดียว แต่รูปภาพ ตามที่อยู่ไม่แสดง
แต่ถ้า ที่ตั้งภาพ มันไม่มีช่องว่างในนั้น มันก็จะสามารถเปิดได้ตามปกติ
ตัวอย่าง    D:\photo\love\mydog\0001.jpg แบบนี้เปิดได้ขึ้นรูปมาปกติ
แต่ถ้าเป็น D:\photo\love\my dog\0001.jpg แบบนี้มันจะเปิดมาแต่โปรแกรมแต่ไม่แสดงรูป
มีวิธีแก้ยังไงบ้างครับ

นี่โค้ดครับ

Private Sub toto1_Click()
On Error GoTo Err_toto1_Click
    Dim stAppName As String
    Dim path As String
    Dim fName As String

    path = CurrentProject.path
    fName = path & "\" & [to1]
    fs = "C:\Program Files\FastStone Image Viewer\FSViewer.exe "
    stAppName = fs & fName
    Call Shell(stAppName, 1)

Exit_toto1_Click:
    Exit Sub
Err_toto1_Click:
    MsgBox Err.Description
    Resume Exit_toto1_Click
End Sub

2 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R12503
ใส่เครื่องหมายอัญญประกาศเข้าไปเยอะๆ ครับ อิอิ ไม่รู้จะอธิบายยังไงดี
ต้องดูในฟังก์ชั่น Shell ของคุณด้วยว่า เขียนไว้อย่างไรบ้าง

เอาเป็นว่า ผมยกตัวอย่างก็แล้วกันครับ
เช่นผมเขียนใน dos
copy c:\data\image1.jpg "d:\data jpg\image1.jpg"
สายอักขระมีสามส่วนครับ 1 คือคำสั่ง ใช้ copy
2 คือชื่อและแหล่งต้นทาง ผมไม่คร่อมด้วยอัญญประกาศเพราะมันไม่มีช่องว่างในสายอักขระนั้น หรือก็คือมันไม่มีเครื่องหมายสัญลักษณ์ใดๆ ที่ผิดกฎการตั้งชื่อ
3 ส่วนที่สามคือชื่อและแหล่งปลายทางที่จะเอาไปวางไว้ ผมใส่เครื่องหมายเพราะว่าส่วนนี้มีสัญลักษณ์ที่ผิดกฎการตั้งชื่อปลอมปนอยู่ด้วย นั่นคือช่องว่างครับ

ในคำสั่งเดียวกันถ้าผมนำมาเขียนใน VB ผมก็ต้องเขียนเป็น
shell "copy c:\data\image1.jpg ""d:\data jpg\image1.jpg""
เห็นไหมครับว่าผมต้องเพิ่มอัญประกาศมาอีก 1 คู่

เพราะฉะนั้นลองกลับไปดู ไปประยุกต์ในโค้ดของคุณดูครับ ดูว่าจะพอแก้ตรงจุดไหนได้บ้าง

** ข้อคิดเห็น การเขียนโปรแกรมในทุกวันนี้ยังปวดหัวกับการอ้างอิงชื่ออยู่เป็นประจำครับ การตั้งชื่อด้วยภาษาไทย การตั้งชื่อให้มีช่องว่าง การตั้งชื่อไม่ถูกต้องตามกฎการตั้งชื่อ ไม่ว่าจะเป็นชื่อไฟล์ ชื่อโฟลเดอร์ ชื่อตาราง ชื่อฟิลด์ หรือชื่ออะไรๆ ก็เหอะครับ มันจะก่อปัญหาไปอีกนานครับ ตราบใดที่ระบบคอมพิวเตอร์มันยังเป็นของสากลครับ เราก็ต้องตามหลักสากลครับ คงแก้ไขอะไรไม่ได้ ก็ต้องตามสากลเขาไปล่ะครับ
^ : ; \ / @ # !
2 @R12522
จากข้อคิดเห็นของอาจารย์ ผมกลับไปแก้ ชื่อโฟลเดอร์ ให้เป็นสากล แล้วครับ
โค้ดก็เลยใช้งานได้แล้ว คราวหน้าคราวหลัง คงต้องพยายาม ให้เป็นกลางที่สุดละครับ
ขอบคุณ คำแนะนำของอาจารย์ด้วยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 1.1440s