VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

source code

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
aforangel



註冊時間: 2010-05-24
文章: 117


第 1 樓

發表發表於: 星期三 十二月 09, 2015 11:06 am    文章主題: source code 引言回覆

請問有高手可以幫把以下SOURCE轉為VFP Language嗎? 看不懂這語言


function mod10checkdigit($barcode) {

$sum_of_digit = 0;
$index = 0;
for ($i = strlen($barcode); $i > 0; $i--) {
$index++;
if (isodd($index) == true) {
$weight = 1;
} else {
$weight = 2;
}
$num = substr($barcode,$i-1,1);
$sum1 = $weight*$num;
if (strlen($sum1) == 2) {
$sum2 = intval(substr($sum1,0,1))+intval(substr($sum1,1,1));
} else {
$sum2 = $sum1;
}
$sum_of_digit = $sum_of_digit + $sum2;
}
$mod10 = ($sum_of_digit % 10);

if ($mod10 == 0) {
$checkdigit = 0;
} else {
$checkdigit = 10 - $mod10;
}
return $checkdigit;

}
回頂端
檢視會員個人資料 發送私人訊息
CPS0204



註冊時間: 2014-08-24
文章: 475


第 2 樓

發表發表於: 星期一 十二月 14, 2015 7:17 pm    文章主題: 引言回覆

我來試看看
function mod10checkdigit
LPARA barcode

sum_of_digit = 0
index1 = 0

FOR I=LEN(BARCODE) TO 1 STEP -1
INDEX1=INDEX1+1 && INDEX 是保留字,故改名

IF ISODD(INDEX1) && ISODD 不知是自定FUNC?
WEIGHT1=1 && WEIGHT 是保留字
ELSE
WEIGHT1=2
ENDIF
*----------------------------*
NUM1=SUBSTR(BARCODE,I-1,1) &&NUM是保留字
SUM1=WEIGHT1*NUM1
*------------------------------*
IF LEN(SUM1)=2
SUM2=INT(VAL(SUBSTR(SUM1,0,1)))+INT(VAL(SUBSTR(SUM1,1,1)))
ELSE
SUM2=SUM1
ENDIF
SUM_OF_DIGIT=SUM_OF_DIGIT+SUM2
NEXT I




MOD10=MOD(SUM_OF_DIGIT,10)
*---------------------------*
IF MOD10=0
CHECKDIGIT=0
ELSE
CHECKDIGIT=10-MOD10
ENDIF
*------------------*
RETURN CHECKDIGIT
回頂端
檢視會員個人資料 發送私人訊息
aforangel



註冊時間: 2010-05-24
文章: 117


第 3 樓

發表發表於: 星期二 十二月 15, 2015 10:12 am    文章主題: 引言回覆

感謝, 我拿去試試看, 另這裡的 ISODD可能是EXCEL內一個功能, 我剛在網上查過

ISODD 函數
本文將說明 Microsoft Excel 中 ISODD 函數的公式語法及使用方式。
描述
如果數字為奇數,則傳回 TRUE;若為偶數,則傳回 FALSE。
語法
ISODD(number)
ISODD 函數語法具有下列引數:
Number 必要。 這是要檢定的值。 如果數字不是整數,則只會取整數。
註解
如果 number 非數值,ISODD 會傳回 #VALUE! 的錯誤值。
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期二 十二月 15, 2015 10:24 am    文章主題: 引言回覆

看到 "check digit barcode"

直接搜尋該BARCODE的驗證碼公式,再重新撰寫或是GOOGLE看看有沒有現成的函式庫,
不是比較快?


樓主另外出現的關鍵字是 "MOD10"
拿去搜尋可以得到:

http://www.activebarcode.com/codes/checkdigit/modulo10.html

Check digit calculation of Modulo 10


利用 "check digit barcode mod 10 foxpro" 搜尋可以得到:
http://www.tek-tips.com/viewthread.cfm?qid=1521726
http://fox.wikis.com/wc.dll?Wiki~BarCodeThings

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作