PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   請問正則表示式(regular expression)能做到這樣嗎? (https://www.pcdvd.com.tw/showthread.php?t=971492)

darkangel 2014-07-06 08:18 PM

我看懂了,不用管我上面講的啥 map,直接用你的陣列跑就可以,你的問題很簡單應該只是要傳資料當 par2 參數用。
1. 你要寫的那個 C/C++ 程式,輸出用 stdio。
2. 跑 par2 時用 par2 -參數`你的程式 -你的程式參數` 那個引號是和小虫(~)號同一按鍵那個(`)。

goddesschi 2014-07-06 09:07 PM

引用:
作者darkangel
我看懂了,不用管我上面講的啥 map,直接用你的陣列跑就可以,你的問題很簡單應該只是要傳資料當 par2 參數用。
1. 你要寫的那個 C/C++ 程式,輸出用 stdio。
2. 跑 par2 時用 par2 -參數`你的程式 -你的程式參數` 那個引號是和小虫(~)號同一按鍵那個(`)。


一開始就碰到一個瓶頸請教一下
如果說在c裡面宣告一個float變數

ex
float variable1;

我要怎麼樣把awk處理過後數字連接到C語言裡面的variable1,麻煩請給我一個方向:nonono:
處理完的資料丟出來給bash用應該用printf就可以實現了吧

darkangel 2014-07-06 09:31 PM

引用:
作者goddesschi
一開始就碰到一個瓶頸請教一下
如果說在c裡面宣告一個float變數

ex
float variable1;

我要怎麼樣把awk處理過後數字連接到C語言裡面的variable1,麻煩請給我一個方向:nonono:
處理完的資料丟出來給bash用應該用printf就可以實現了吧


具體做法應該是類似:

要給 awk 處理的指令 | awk '{print $1}' | 你的程式

你的程式去讀 /dev/stdin 就可以了。

這就是所謂的透過 pipe line 傳資料,是 unix 最基本的跨程式資訊傳遞方式,我忘了在哪本書看過,要找一下。
要不你自己 google 應該也有不少東西可以參考。

幫你 google 一下~

http://bytes.com/topic/c/answers/69...-pipe-dev-stdin

goddesschi 2014-07-07 12:21 AM

沒想到標準輸入仍然沒有想像中好弄,還以為宣告一下變數應該很方便就能把變數拉進C++來用
感謝,我想我明天上班應該會偷偷找時間研究

darkangel 2014-07-07 04:04 PM

加油。
其實還有另一種方法啦,就是全部用 C/C++ 去寫,然後用 exec() 或 fork() 去呼叫 rar 跟 par2。
還有,給 crontab 跑自動化的小東西其實用 python 這類的 script 語言寫會比 C/C++ 快。
或是你 shell script 真的很強,也可以全部用 shell script,你知道 shell script 也可以弄 dialog 之類的東西圖型化嗎?

shinnlu 2014-07-07 04:07 PM

前一陣子有寫一些小工具,寫shell script 太麻煩而且不熟
最後改用 php 寫,一下就搞定了

darkangel 2014-07-07 05:24 PM

PHP 不錯,而且很像 C 跟 Perl,連一些函式庫都從 C 那邊直接拿來用,有 C, Perl 底的人把說明文件前面幾章看一看就可以直接拿來用。
懶得學 Python 的話 PHP 是最快的,比 shell script 好用很多。

goddesschi 2014-08-03 11:01 AM

上個月因為server到期所以就優先花了將近一整個月在做搬家磨合的動作
搬家真的是挺煩的一件事情

拖了很久才來繼續處理這個問題了,留個言push自己一下 = =

goddesschi 2014-10-11 09:06 PM

寫了這麼久總算是寫到一段落了,感謝大家給我的建議我都儘量採用了,有興趣的話可以參考我的script/source code來玩玩
我自知不是什麼coding的人才所以說寫得不好/混亂的地方請包涵,其實能達到我的目標我已經很開心了 :hungry:

bash shell scrip
http://pastebin.com/xgK2DJBB

3份C++的source code請依序compiler為test7~test9
http://pastebin.com/ztUtkCLn
http://pastebin.com/ZQZqYraC
http://pastebin.com/ek3Cn7EN

-----------------------------
參數簡單說明:
dataWhere='/home/userid/data/' <<data 來源
dirWhere='/home/userid/a/' <<壓縮來源
saveWhere="/home/userid/save/" <<另存目標
programWhere="/home/userid/software/" <<script & binary code的位置
findList="/home/userid/software/source" <<處理檔案/資料夾的名稱列表
newNameList="/home/userid/software/target" <<改名列表
tempList="/home/userid/software/templist" <<暫存用檔案(debug用而以)
password="P.A.S.S.W.O.R.D" <<rar解壓密碼
par2_method="10" <<修復檔製作模式,如果說電腦夠強的話用模式11並且在修改C++的部分語法會比mode10更精準,其實更進一步的來說,如果有能力改寫par2的source code會更理想
rarVersion="r5d11fin" <<rar版本
information_mode="02" <<項目資訊的處理模式

基本概念:
腳本會把$findList有的的檔案由$dataWhere丟到$dirWhere下面後批量做rar壓縮+製作par2檔案.sfv檢查檔等等另存在$saveWhere最後把資訊匯總放在$saveWhere下對應的資料夾或是$saveWhere
可參考示意圖

注意:
path的部分全部都要記得結尾加上/,source/target檔案務必行數match,一行代表loop處理的一個檔案或是資料夾!!

以上
PS:腳本執行結果生成的檔案我就不提供了,執行上有更多疑問可以提出來,我們再討論 :flash:

darkangel 2014-10-11 11:08 PM

引用:
作者goddesschi
3份C++的source code請依序compiler為test7~test9
http://pastebin.com/ztUtkCLn
http://pastebin.com/ZQZqYraC
http://pastebin.com/ek3Cn7EN


你騙我... 這不是 C++... (哭著跑開)

:cry: :cry: :cry: :cry: :cry:


所有的時間均為GMT +8。 現在的時間是09:48 AM.

vBulletin Version 3.0.1
powered_by_vbulletin 2025。