pri:thwab
اختلافات
عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.
جانبي المراجعة السابقةالمراجعة السابقةالمراجعة التالية | المراجعة السابقة | ||
pri:thwab [2008/10/15 02:49] – alsadi | pri:thwab [2015/04/23 03:21] (حالي) – تحرير خارجي 127.0.0.1 | ||
---|---|---|---|
سطر 1: | سطر 1: | ||
+ | ====== ثواب ====== | ||
+ | |||
+ | هذه صفحة تحتوي على أفكار خام | ||
+ | |||
+ | استيراد الكتب من الشاملة عبر mdbtools وذلك باستخدام | ||
+ | < | ||
+ | bash$ mdb-schema file.mdb | ||
+ | .... | ||
+ | DROP TABLE b2023; | ||
+ | CREATE TABLE b2023 | ||
+ | ( | ||
+ | id Long Integer, | ||
+ | nass Memo/ | ||
+ | part Byte, | ||
+ | page Long Integer, | ||
+ | hno Long Integer | ||
+ | ); | ||
+ | ... | ||
+ | bash$ mdb-export -I file.mdb Table | ||
+ | INSERT INTO Main (BkId, Bk, Betaka, Inf, Auth, AuthInf, TafseerNam, IslamShort) VALUES (2023," | ||
+ | </ | ||
+ | حيث يمكن تحويلها إلى sqlite أو أي قاعدة بيانات أخرى | ||
+ | |||
+ | كان هناك مشكلة في التعامل مع العربية | ||
+ | http:// | ||
+ | |||
+ | لكنها حلت بعد اعتماد unicode في mdbtools لكن هناك مشكلة أن النص الناتج كان مشوها وغير مقروء | ||
+ | < | ||
+ | correct: درء تناقض العقل والنقل | ||
+ | D8AF D8B1 D8A1 20 D8AA D8B9 D8A7 D8B1 D8B6 20 D8A7 D984 D8B9 D982 D984 20 D988 D8A7 D984 D986 D982 D984 | ||
+ | deformed: unreadable utf-8 text | ||
+ | C38F C391 C381 20 C38A C39A C387 C391 C396 20 C387 C3A1 C39A C39E C3A1 20 C3A6 C387 C3A1 C3A4 C39E C3A1 | ||
+ | |||
+ | correct: | ||
+ | 1101-1000-1010-1111 1101-1000-1011-0001 1101-1000-1010-0001 1101-1000-1010-1010 1101-1000-1011-1001 1101-1000-1010-0111 | ||
+ | deformed | ||
+ | 1100-0011-1000-1111 1100-0011-1001-0001 1100-0011-1000-0001 1100-0011-1000-1010 1100-0011-1001-1010 1100-0011-1000-0111 | ||
+ | </ | ||
+ | بعد قراءة الكود تبين أن JET3 المستخدمة في الشاملة لا تعتمد unicode ولا تحدد ال encoding داخل ملف mdb وتبين أن الحل بسيط جدا وهو تمرير الترميز على شكل env | ||
+ | |||
+ | < | ||
+ | MDB_JET3_CHARSET=cp1256 mdb-export -I file.mdb Table | ||
+ | </ | ||
+ | |||
+ | ===== طريقة تجربة البرنامج ===== | ||
+ | < | ||
+ | yum install mdbtools | ||
+ | </ | ||
+ | |||
+ | ===== طريقة استيراد ملف من الشاملة ===== | ||
+ | <code bash> | ||
+ | mdb-schema x.mdb | perl -wpe ' | ||
+ | |||
+ | for i in $(mdb-tables x.mdb); do echo $i; ( | ||
+ | echo "BEGIN TRANSACTION;"; | ||
+ | MDB_JET3_CHARSET=cp1256 mdb-export -R "; | ||
+ | echo "END TRANSACTION;" | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== طريقة استيراد ملف من الشاملة إلى هيئة خاصة بنا ===== | ||
+ | هيئة المكتبة الشاملة مشروحة في هذا الرابط | ||
+ | http:// | ||
+ | فإذا أردنا تغيير تركيبة قاعدة البيانات نستطيع عمل: | ||
+ | < | ||
+ | rm x.db | ||
+ | ( | ||
+ | # create temporary tables schema | ||
+ | mdb-schema x.mdb | perl -wpe ' | ||
+ | # import the data base as-is into the temporary tables | ||
+ | echo "BEGIN TRANSACTION;"; | ||
+ | for i in $(mdb-tables x.mdb); do MDB_JET3_CHARSET=cp1256 mdb-export -R "; | ||
+ | # create out own tables format replace tmpb2023 with " | ||
+ | echo "DROP TABLE IF EXISTS bookcontent;" | ||
+ | echo " | ||
+ | echo "DROP TABLE IF EXISTS toc;" | ||
+ | echo " | ||
+ | |||
+ | echo " | ||
+ | |||
+ | echo " | ||
+ | echo "END TRANSACTION;" | ||
+ | </ | ||
+ | لكن لسبب ما طريقة الاستيراد هذه أقل سرعة بكثير من سابقتها. | ||
+ | |||
+ | ===== التنفيذ ===== | ||
+ | ===== الطريقة الأولى ===== | ||
+ | import a shamelah book into a single sqlite file in | ||
+ | / | ||
+ | |||
+ | and then it touches the top level directory | ||
+ | so that when the app checks mtime stamp and it knows that a new files | ||
+ | and update ~/ | ||
+ | |||
+ | system wide vs. user specific adding | ||
+ | and where caching should be ..etc. | ||
+ | |||
+ | ===== الطريقة الثانية ===== | ||
+ | import all books into a single database (in shamelah they call it archive) | ||
+ | on / | ||
+ | cache, indices ...etc all are global | ||
+ | |||
+ | but in this case I think I should make thwab to open not yet imported books but this is not a feature | ||
+ | |||
+ | I'm going the second way | ||
+ | |||
+ | ====== تحويله إلى exe ====== | ||
+ | http:// | ||
+ | |||