用vbs將名稱截斷以使其最多包含 16 個字元的代碼

來源:互聯網
上載者:User

問:
您好,指令碼專家!如何將名稱截斷以使其最多包含 16 個字元?
-- BN
答:
您好,BN。打起精神來:我們又要開始記憶長廊之旅了。曾經有個指令碼專家上大學的時候,他在綠巨人公司找了一份暑期臨時工,任務就是在辦公室裡監督華盛頓東部的蘆筍收割。當時,綠巨人有一個陳舊笨重的電腦系統,用來記錄蘆筍的數量 - 然後再記錄要付給所有收割者多少錢。這個系統有一個問題,但是(事實上,它的問題不只一個,不過 …):它被設定為姓氏最多可使用 10 個字元,而許多工人的姓都比 10 個字元要長(例如,Myer-Ackerman)。每次資料輸入人員輸入一個比 10 個字元長的名稱時,整個系統都會鎖死,因此他們的工作站常常必須重新啟動。(這都是在出現 Microsoft Windows 之前的事了。)
這個指令碼專家那時根本談不上是指令碼專家;事實上,他使用電腦的經驗主要局限於在 Commodore 64 上玩 Zork。可是現在,作為辦公室裡唯一的大學生,他被委任以修複此資料輸入程式的重任(幸運的是,資料庫本身沒有這種限制)。他的工作就是在程式試圖將名稱儲存到資料庫之前,確保截斷所有多於 10 個字元的名稱。
換句話說,這與您需要完成的任務非常相似。那時我們的指令碼專家工作在 BASIC 的某個專有分支領域,他的解決方案就是使用 Left 函數擷取某個名稱的前 10 個字母,並以此來作為此工人的姓。現在,差不多 20 年之後,想想您的問題的解決方案是什嗎? 複製代碼 代碼如下:strName = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
strName = Left(strName, 16)
Wscript.Echo strName

經典的解決方案從來不會過時,是吧?這個指令碼從我們 20 年前停手的地方開始:它將一個很長的字串(本例中為字母表)賦值給名為 strName 的變數:
strName = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
接下來是下面這行代碼:
strName = Left(strName, 16)
這行代碼將一個新值賦給變數 strName。那麼這個新值是什麼呢?它將是 strName 當前值的前 16 個字元。這就是 Left 函數的作用:它從此字串的第一個字元開始計數,一直數到 16 個字元,就像這樣:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
這 16 個字元,且僅這 16 個字元,將賦給變數 strName。然後,回顯 strName 的新值,我們會得到如下字串:
ABCDEFGHIJKLMNOP
很酷吧。此指令碼很有效,即使 strName 是從 2600 個字元的 26 個字元開始效果也一樣:結果都是僅使用前 16 個字元。啊,但是如果字串少於 16 個字元會怎麼樣?例如,此指令碼會失敗嗎,因為它試圖擷取 16 個字元,而根本沒有 16 個字元?
strName = "ABCD"
strName = Left(strName, 16)
Wscript.Echo strName
幸運的是答案是否定的:此指令碼會順利運行。如果某字串少於 16 個字元,則 Left 函數只擷取它所能找到的所有字元,並將此值賦值給 strName。在本例中,strName 等於 ABCD,此字串中僅有的 4 個字元。
現在,再緬懷一下過去的美好時光。我們告訴過您當這個指令碼專家正坐在他的綠巨人辦公室裡時,一條響尾蛇爬進來嗎?這是真的。他正坐在那兒,努力思考將姓限制為 10 個字元的方法,正在這時 -- 天哪;今天的時間到了。我們必須改天再繼續講這個故事了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.