2013-09-27 92 views
3

我們使用FedEx作爲託運人。他們的標籤打印機限制我們每個地址行35個字符。如果第一行超過35個字符限制,我的同事們正在討論如何將地址線分成第二個地址行。使用地址驗證服務時,我們也遇到了這個問題。聯邦快遞35字符限制

我很好奇,其他人怎麼處理35個字符的限制?

在此先感謝!

編輯

發佈我開發的,因此它可能幫助別人(對Perl編寫和變量名稱更改爲保護無辜者)的解決方案。

# handle too long strings 
my $street1_string = sprintf("%s", $ShipTo_Street_Line1)); 
my $street2_string = sprintf("%s", $ShipTo_Street_Line2)); 
my $street1_final; 
my $street2_final; 
my $street1_length = length($street1_string); 
my $last_space_pos = rindex($street1_string, ' '); 

# find and split on last space less than 35 characters 
while($last_space_pos >= 35) 
{ 
    if ($last_space_pos < 35) 
    { 
     break; 
    } 

    $last_space_pos = rindex($street1_string, ' ', $last_space_pos-1); 
} 

$street1_final = substr($street1_string, 0, $last_space_pos); 
$street2_final = substr($street1_string, $last_space_pos+1, $street1_length) . ' ' . $street2_string; 
+1

可以假設沒有人使用聯邦快遞運送到Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch。 –

+0

所以@HotLicks;你是英國人,但你能發音嗎:-)? – Ben

+0

(很多年前,我通過切換到更窄的字體來處理郵寄標籤上的這個問題。) –

回答

3

是的,你是對的,字符限制可能會很麻煩。我使用了一種不完全優雅的方法,但它的工作原理。 查找字符串中的所有「空格」,並將字符串拆分爲最接近但小於35的空格,並將多餘字符放在地址行2中。您將注意到地址行2也只有35個字符。

1

我需要處理usps和ups標籤。除了35個字符的限制外,還有三個地址線限制。如果地址行超過35個字符,我會嘗試在「逗號」之後進行分割。如果逗號不存在,請拆分最接近行尾的空格。如果已經有三條地址線,我會將額外的地址行移到「公司」字段(一個運輸標籤有聯繫人,公司和3個地址行字段)。如果有多於兩條地址線需要拆分,並且使用了所有3條地址線,則失敗並出錯。這發生在成千上萬個地址中的一次。