ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 3021|ตอบกลับ: 3

สอบถามวิธีการ set format เพิ่ม 0 ในข้อความ string

[คัดลอกลิงก์]

2

กระทู้

5

โพสต์

40

เครดิต

Newbie

Rank: 1

เครดิต
40

ขอสอบถามเรื่องวิธีการเพิ่ม เลข 0 ในข้อความหน่อยครับ

ตัวอย่างข้อมูล เกี่ยวกับป้ายทะเบียนรถ
ระบกำหนดให้ใส่ข้อมูลลง database ได้ 7 ตัวอักษร ถ้าไม่ไม่ครบ 7 ตัวอักษรก็ให้ใส่ 0 ข้างหน้า แต่ว่าข้อมูลที่ได้รับมามีดังนี้

ข้อมูลตัวอย่าง         
1กข-1234 => 1กข1234
กข-123     => 0กข0123
กข-12      => 0กข0012

ต้องสร้าง function แบบไหนคับ ถึงจะเติม 0 ก่อนหน้า string และตรงกลาง string.



2

กระทู้

5

โพสต์

40

เครดิต

Newbie

Rank: 1

เครดิต
40
 เจ้าของ| โพสต์ 2018-10-12 14:40:48 | ดูโพสต์ทั้งหมด

ได้แล้วครับ ใช้ mid(string,start,length) สำหรับเชค

308

กระทู้

498

โพสต์

5973

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5973
โพสต์ 2018-10-15 19:01:14 | ดูโพสต์ทั้งหมด

อาจจะมาตอบให้ช้าไปสักนิด แต่คิดว่าคงมีประโยชน์ให้กับคนอื่นๆด้วยล่ะกันครับ ...
  1.     Dim Sample As String
  2.     '// ค่าทดสอบ
  3.     'Sample = "1กข-1234"
  4.     'Sample = "กข-123"
  5.     Sample = "กข-12"
  6.     'Sample = "กข12"
  7.     '// หาเครื่องหมาย - ... หากเจอ InStr จะรีเทิร์นค่ากลับมากกว่า 0
  8.     If InStr(Sample, "-") > 0 Then
  9.         Dim sArr() As String
  10.         '// แยกชุดข้อมูลออกจากกัน
  11.         sArr = Split(Sample, "-")
  12.         
  13.         '// ข้อมูลชุดแรกต้องการ 3 หลัก
  14.         '// ไม่ต้องทดสอบเงื่อนไขก็ใช้การเรียงต่อ "000" & "กข" = "000กข"
  15.         '// จากนั้นให้นับจากทางขวามา 3 หลัก ก็จะได้ "0กข"
  16.         sArr(0) = Right$("000" & sArr(0), 3)
  17.         '// ข้อมูลชุดสองต้องการ 4 หลัก
  18.         sArr(1) = Right$("0000" & sArr(1), 4)
  19.     Else
  20.         '// หาเครื่องหมาย - ไม่พบ
  21.         MsgBox "Not Found - Sign!!!"
  22.         Exit Sub
  23.     End If
  24.     '// คำตอบ
  25.     MsgBox sArr(0) & sArr(1)
คัดลอกไปที่คลิปบอร์ด




สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

2

กระทู้

5

โพสต์

40

เครดิต

Newbie

Rank: 1

เครดิต
40
 เจ้าของ| โพสต์ 2018-10-22 11:40:03 | ดูโพสต์ทั้งหมด

แก้ไขครั้งสุดท้ายโดย bagpacker2010 เมื่อ 2018-10-22 12:23

ขอบคุณครับอาจารย์ ผมใช้  select เล่นซะยาวเลยSub CheckNumberPlateFormat()

Select Case Len(NumberPlateOriginal)
Case Is = 2
NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "000" & Mid(NumberPlateOriginal, 2, 1)
Case Is = 3

    Select Case Mid(NumberPlateOriginal, 2, 1)
    Case "-"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "000" & Mid(NumberPlateOriginal, 3, 1)
    Case "1"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "2"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "3"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "4"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "5"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "6"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "7"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
    Case "8"
    NumberPlateConverted = "00" & Mid(NumberPlateOriginal, 1, 1) & "00" & Mid(NumberPlateOriginal, 2, 2)
.
.
.
.
.
ที่มาของเรื่องนี้นื่องจาก ข้อมูลป้ายทะเบียนรับมาจากหน้าเว็บที่ user กรอก บางครั้งก็รูปแบบแตกต่างกัน (เนื่องจากไม่ได้กำหนด format การกรอกข้อมูลไว้ตั้งแต่ต้น)
ผมบอกข้อมูลตัวอย่างไปไม่ครบ ขาดไปอีกอย่างคือ บางที user กรอกมา "กข12" เราก็ต้องมาแปลงให้เป็น "0กข0012"
ก่อนนำส่งข้อมูลของอีกโปรแกรมนึง





ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 16:53 , Processed in 0.357436 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้