Export แล้วไม่อยากให้มีบรรทัดว่าง



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

22 ต.ค. 61 , 16:15:03
อ่าน 541 ครั้ง

aek



ตามรูป คือ export มาแล้ว ส่งไปพิมพ์บาร์โค้ดอัตโนมัติ(เครื่องZebraต่ออยู่กับโปรแกรมอื่น) แต่บาร์โค้ดออกกระดาษเปล่ามาด้วย เพราะไฟล์ text สามารถกด cursor ลงมาได้(เหมือนมี2บรรทัด) ต้องการถามว่าจะทำอย่างไรให้ไฟล์ export เหลือ 1 บรรทัดจากการ export เลย (cursor อยู่ต่อท้ายบรรทัดแรก)ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 24 ต.ค. 61 , 11:01:40 โดย aek »

 

23 ต.ค. 61 , 00:59:36
ตอบกลับ #1

สันติสุข

  • แฟนพันธุ์แท้ไท.Access
  • *
  • กระทู้: 466
  • พลังขอบคุณ: 418

  • ขึ้น 15 ค่ำเดือน 8 แสดงปฐมเทศนา

    • ดูรายละเอียด

ไม่รู้นะครับว่าเครื่องพิมพ์คุณทำงานยังไง แต่ถ้าลบบรรทัดสุดท้ายไม่ขึ้นบรรทัดใหม่ แก้ไขเองด้วยมือเลย ยังจะมีพิมพ์กระดาษเปล่าออกมาไหม
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: aek

23 ต.ค. 61 , 14:49:15
ตอบกลับ #2

aek

ไม่รู้นะครับว่าเครื่องพิมพ์คุณทำงานยังไง แต่ถ้าลบบรรทัดสุดท้ายไม่ขึ้นบรรทัดใหม่ แก้ไขเองด้วยมือเลย ยังจะมีพิมพ์กระดาษเปล่าออกมาไหม


ทำแบบ อ.ว่า ทำได้ครับ ไม่มีกระดาษเปล่าออกมา แต่อาจจะไม่ค่อยสะดวกเท่าไหร่ที่ต้องคอยมาแก้ไขด้วยมือ ลองถามดูครับเผื่อจะแก้ไขได้ ขอบคุณครับ :miao: :miao:

 

23 ต.ค. 61 , 15:19:47
ตอบกลับ #3

สันติสุข

  • แฟนพันธุ์แท้ไท.Access
  • *
  • กระทู้: 466
  • พลังขอบคุณ: 418

  • ขึ้น 15 ค่ำเดือน 8 แสดงปฐมเทศนา

    • ดูรายละเอียด

ผมมีโค้ดตัวนึง ลองเอาโค้ดนี้ไปใช้ดู แต่ไม่ยืนยันนะครับว่าจะถูกต้อง 100% หรือไม่
โค๊ด: [Select]
Public Sub CutLastCRLF(aFullFileNM As String)
    Dim B As String * 1
    Dim S As String
    Dim L As Long

    Open aFullFileNM For Binary Access Read As #1
    Do Until EOF(1)
        Get #1, , B
        S = S & B
    Loop
    Close #1

    If Right(S, 3) <> vbCr & vbLf & vbNullChar Then
        Exit Sub
    End If

    S = Left(S, Len(S) - 3)

    On Error Resume Next
    Kill aFullFileNM

    On Error GoTo 0
    Open aFullFileNM For Binary Access Write As #1
    Put #1, , S
    Close #1
End Sub
จะเรียกใช้ก็สั่ง Call CutLastCRLF("Drive:\Path\File.txt") มันจะเขียนทับไฟล์เดิมครับ
« แก้ไขครั้งสุดท้าย: 23 ต.ค. 61 , 20:38:20 โดย สันติสุข »
ช่วยพกถุงผ้า/ถุงพลาสติกใช้แล้วไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: aek, อุดมโชค สมหวัง

24 ต.ค. 61 , 10:30:07
ตอบกลับ #4

aek

ผมมีโค้ดตัวนึง ลองเอาโค้ดนี้ไปใช้ดู แต่ไม่ยืนยันนะครับว่าจะถูกต้อง 100% หรือไม่
โค๊ด: [Select]
Public Sub CutLastCRLF(aFullFileNM As String)
    Dim B As String * 1
    Dim S As String
    Dim L As Long

    Open aFullFileNM For Binary Access Read As #1
    Do Until EOF(1)
        Get #1, , B
        S = S & B
    Loop
    Close #1

    If Right(S, 3) <> vbCr & vbLf & vbNullChar Then
        Exit Sub
    End If

    S = Left(S, Len(S) - 3)

    On Error Resume Next
    Kill aFullFileNM

    On Error GoTo 0
    Open aFullFileNM For Binary Access Write As #1
    Put #1, , S
    Close #1
End Sub
จะเรียกใช้ก็สั่ง Call CutLastCRLF("Drive:\Path\File.txt") มันจะเขียนทับไฟล์เดิมครับ


ได้ตามที่ต้องการเลยครับ ขอบคุณ อ.มากๆ ครับ หาวิธีอยู่นานเลย ปลื้มปลิ่มสุดๆ  :want: :want: :want:
« แก้ไขครั้งสุดท้าย: 24 ต.ค. 61 , 14:10:34 โดย aek »

 


บอร์ดเรียนรู้ Access สำหรับคนไทย