• Hiện tại trang web đang trong quá hình chuyển đổi và tái cấu trúc lại chuyên mục nên có thể một vài chức năng chưa hoàn thiện, một số bài viết và chuyên mục sẽ thay đổi. Nếu sự thay đổi này làm bạn phiền lòng, mong bạn thông cảm. Chúng tôi luôn hoan nghênh mọi ý kiến đóng góp để chúng tôi hoàn thiện và phát triển. Cảm ơn

Tự gán ngày kỷ niệm vào lịch (cập nhật 05/05)

quocsan

New Member
Chào mọi người,

Trong tuần này tôi đã viết xong 1 chương trình nhỏ bằng ngôn ngữ Python có thể chạy trên nền PyS60 (Python for S60).
Tôi sử dụng chương trình như sau:
1) Nhập ngày giỗ (âm lịch) và các ngày sinh nhật (dương lịch) vào 1 file văn bản. Ví dụ:

10/03: Giỗ tổ
01/01*: Tết tây
....
; ngày/tháng có dấu * là ngày dương lịch.

2) Chạy chương trình: Nhập năm cần xử lý, ví dụ 2008
Chương trình sẽ đọc từng dòng từ file văn bản và đổi ngày âm lịch sang ngày dương lịch rồi tự gán vào ngày dương lịch trên Calendar của điện thoại.
Sau đó khi mở Calendar, ta sẽ thấy ngày giỗ, sinh nhật tương ứng.
Tôi không biết là diễn tả như vậy mọi người có nắm được hay không.
Nhận thấy là chương trình này cũng có ích vì lâu lâu ta chỉ phải cập nhật lại file văn bản và cho chạy chương trình thì sẽ không quên ngày giỗ, sinh nhật.
Chỉ cần chỉnh sửa chút ít là ta có thể gán ngày âm cho từng ngày dương lịch trên Calendar.
Phần đổi âm lịch sang dương lịch tôi dùng thuật toán Hồ Ngọc Đức (http://www.informatik.uni-leipzig.de/~duc/amlich/) mô tả.
Nếu mọi người quan tâm, chúng ta sẽ trao đổi thêm.
(Tôi sẽ post source code lên diễn đàn sau).

Nguyễn Quốc Sản
(Dầu Tiếng - Bình Dương)
quocsan@gmail.com
 
Chỉnh sửa cuối:
Source code

Các bạn tải file Lunar2Calendar.zip đính kèm và giải nén thành:
1) al.py: Thuật toán tính âm-dương lịch
2) AnnFrFile.py: Chương trình chính.
Trên máy các bạn cần cài pyS60 (python for S60). Hiện đã có bản 1.45
- Chép file al.py vào E:\python\Lib
- Nhập các ngày kỷ niệm và lưu theo dạng unicode vào file E:\Documents\Anni.txt
- Chạy chương trình.
- Nhập năm cần xử lý. Nếu bấm cancel thì sẽ dừng.
* Chú ý: Khi chương trình chạy, nó sẽ tìm và xóa các mục anniversary bắt đầu bằng ký tự "¤ " (xem AnnFrFile.py).
Vì vậy để chắc ăn, các bạn sao lưu các PIM của mình nhé.

Quốc Sản.
 
Chỉnh sửa cuối:
Thay mặt BĐH Sym của diễn đàn PV, chân thành cảm ơn tinh thần chia sẻ xuyên biên giới của bạn! :)

Hy vọng sẽ có nhiều PM hay hơn nữa được bạn giới thiệu!
 
Các bạn tải file Lunar2Calendar.zip đính kèm và giải nén thành:
1) al.py: Thuật toán tính âm-dương lịch
2) AnnFrFile.py: Chương trình chính.
Trên máy các bạn cần cài pyS60 (python for S60). Hiện đã có bản 1.45
- Chép file al.py vào E:\python\Lib
- Nhập các ngày kỷ niệm và lưu theo dạng unicode vào file E:\Documents\Anni.txt
- Chạy chương trình.
- Nhập năm cần xử lý. Nếu bấm cancel thì sẽ dừng.
* Chú ý: Khi chương trình chạy, nó sẽ tìm và xóa các mục anniversary bắt đầu bằng ký tự "¤ " (xem AnnFrFile.py).
Vì vậy để chắc ăn, các bạn sao lưu các PIM của mình nhé.

Quốc Sản.

Sẵn đây cho mình hỏi cái này nha: có phải để chỉnh file .py ta có thể rename thành file .doc? Mình thấy font của .py thường là Plant text, vậy để sửa font qua hỗ trợ unicode thì mình có thể dùng cách nào?

Mong câu trả lời lắm lắm! :)
 
Sẵn đây cho mình hỏi cái này nha: có phải để chỉnh file .py ta có thể rename thành file .doc? Mình thấy font của .py thường là Plain text, vậy để sửa font qua hỗ trợ unicode thì mình có thể dùng cách nào?

Mong câu trả lời lắm lắm! :)

Đối với file .py ta chỉ cần chỉnh sửa và lưu lại ở dạng plain text bình thường, không cần rename, hay UNICODE.
Còn để soạn 1 file text và lưu ở dạng UNICODE,
thì có thể dùng các chương trình có hỗ trợ (ví dụ LCG x-plore, word, ...)
Lời khuyên: Các bạn vào trang http://code.google.com/p/ped-s60/downloads/list để tải và cài trình soạn thảo (cho cả file .py và file .txt).
Dùng phần mềm này ta sẽ chỉnh sửa và cho chạy các file .py rất dễ dàng.

Đối với chương trình của tôi:
  1. Đặt file al.py vào E:\python\lib (hay ổ đĩa C:)
  2. Đặt file AnnFrFile.py vào E:\python (hay ổ đĩa C:)
  3. Tạo 1 file text Anni.txt để chứa các ngày kỷ niệm và lưu vào "E:\Documents\". File này mới cần ở dạng UNICODE, nó sẽ chứa các dòng như
Mã:
01/01*: Tết tây
01/01: Tết Nguyên đán
15/02*: Sinh nhật QS
...
Lưu ý:
  • Sẽ bỏ qua các dòng bắt đầu bằng dấu "#" hay ";"
  • Nếu là ngày dương (cho sinh nhật) thì thêm dấu "*" vào ngay sau tháng
  • Ngày âm lịch (như đám giỗ) thì chỉ nhập ngày/tháng
  • Sau ngày tháng cần có thêm dấu ":" để chương trình nhận diện và tách ra (cả âm lẫn dương lịch).
  • Các ngày kỷ niệm có thể trùng nhau. Khi đó sẽ có nhiều mục anniversary trên Calendar

Có thể chỉnh sửa lại các thông số như:
  • Vị trí đặt file dữ liệu (Anni.txt)
  • Nếu thấy lưu dạng UNICODE không tiện, tôi có thể dùng 1 module nhỏ để tự chuyển sang UNICODE; còn chúng ta chỉ cần nhập dạng TELEX (ví dụ chỉ cần nhập "01/01: Teest Nguyeen ddasn", khi xử lý chương trình sẽ chuyển thành "01/01: Tết Nguyên đán")
  • Cũng có thể chỉnh sửa chương trình để nó gán ngày âm lịch cho tất cả các ngày dương lịch. Khi mở Calendar ta thấy cả ngày âm và ngay dương.
Mong các bạn bổ sung ý kiến.

Nguyễn Quốc Sản.
quocsan@gmail.com
 
Chỉnh sửa cuối:
Chương trình này hay quá, đúng là thứ mình cần lâu nay. Cám ơn bạn nhiều.

Khi nhập ngày tháng nhớ nhập theo dạng XX/YY, chứ không thì chương trình sẽ báo lỗi
 
Chương trình này hay quá, đúng là thứ mình cần lâu nay. Cám ơn bạn nhiều.

Khi nhập ngày tháng nhớ nhập theo dạng XX/YY, chứ không thì chương trình sẽ báo lỗi

Biết hay, mà tại sao không chịu Click Thank tác giả chứ, Hãy sử dụng nút Thank hiệu quả.
 
Đối với file .py ta chỉ cần chỉnh sửa và lưu lại ở dạng plain text bình thường, không cần rename, hay UNICODE.
Còn để soạn 1 file text và lưu ở dạng UNICODE,
thì có thể dùng các chương trình có hỗ trợ (ví dụ LCG x-plore, word, ...)
Lời khuyên: Các bạn vào trang http://code.google.com/p/ped-s60/downloads/list để tải và cài trình soạn thảo (cho cả file .py và file .txt).
Dùng phần mềm này ta sẽ chỉnh sửa và cho chạy các file .py rất dễ dàng.

..........

Nguyễn Quốc Sản.
quocsan@gmail.com

Ý mình thế này, mình có file .py tiếng Anh. Mình muốn dịch file này ra tiếng Việt, mình đã thử rename qua .doc để dịch thì được dấu đơn giản (sắc huyền ô) còn các dấu phức tạp thì bị lỗi font. Vậy để sửa sang unicode mà ko sợ sai font thì ta nên dùng trình nào.

Link của bạn mình thấy file sis, mình sửa trên điện thoại hả bạn :-?
 
Có thể dùng Notepad để chỉnh sửa file .py mà. Nếu muốn save dưới dạng Unicode thì trong hộp thoại Save As, phần Encoding chọn là Unicode là OK. Để được đầy đủ dấu thì phải chọn font hỗ trợ Unicode đấy đủ.
 
Như bạn chỉ dẫn thì cả đống file thì dơnload những file gì và cài như thế nào .

PED=Python EDitor. Nhiều file vì mỗi thứ có tác dụng riêng.
Bạn có thể tải "Ped_2.30.5_beta_3rdEd_unsigned_testrange.sis" về và sign nó rồi cài.
 
Có thể dùng Notepad để chỉnh sửa file .py mà. Nếu muốn save dưới dạng Unicode thì trong hộp thoại Save As, phần Encoding chọn là Unicode là OK. Để được đầy đủ dấu thì phải chọn font hỗ trợ Unicode đấy đủ.

Thế nào font hỗ trợ đầy đủ vậy bạn :-?

PED=Python EDitor. Nhiều file vì mỗi thứ có tác dụng riêng.
Bạn có thể tải "Ped_2.30.5_beta_3rdEd_unsigned_testrange.sis" về và sign nó rồi cài.

Vậy mình dùng file nào cũng được hả bạn? Mình dùng cái này dịch luôn hen :)

Mình ko rành lập trình, chỉ là mò để Việt hóa thôi.
 
Ý mình thế này, mình có file .py tiếng Anh. Mình muốn dịch file này ra tiếng Việt, mình đã thử rename qua .doc để dịch thì được dấu đơn giản (sắc huyền ô) còn các dấu phức tạp thì bị lỗi font. Vậy để sửa sang unicode mà ko sợ sai font thì ta nên dùng trình nào.

Link của bạn mình thấy file sis, mình sửa trên điện thoại hả bạn :-?
  1. Vâng với file sis thì tải về và cài, chạy trên điện thoại
  2. Vấn đề dịch ra tiếng Việt:
    • Tôi đã thử dùng trình PED để soạn thảo. Vào Settings chọn lưu ở dạng UTF-8.
    • Dùng chương trình HelloWord của Đoàn Anh Tài để soạn tiếng Việt. Khi đang soạnn sẽ thấy như hình "editing.jpg"
    • Lưu lại. Lúc này thật ra file đã lưu sẽ có dạng như hình "saved.jpg".
      Thực sự nội dung khi lưu của nó như hình "How_It_Saved.JPG": Không có BOM là "EF BB BF" như các file UTF-8 thông thường.
Nếu Việt hóa như vậy cực quá thì tôi còn 1 cách khác: Cứ soạn nội dung chữ Việt dạng TELEX (như "Dieexn ddafn Tinh tees. Hwowsng ngwowfi dufng") mà không cần quan tâm UTF-8 hay UNICODE, tất cả đều là plain text. Sau đó dùng 1 module Python vn.py của tôi để chuyển sang chữ Việt.
Cách sử dụng:
Mã:
import appuifw
import [B]vn[/B]
s = "Dieexn ddafn Tinh tees. Hwowsng ngwowfi dufng"
appuifw.note( [B]vn.Telex[/B](s) )
Đơn giản hơn nhiều.

CHÚ Ý:
  1. Các bạn không nên sửa và lưu file "AnnFrFile.py" ở dạng UNICODE. Không khéo thì python nó la "em chả"
  2. Với file "Anni.txt" thì các bạn có thể dùng NotePad trên Windows nhập các ngày kỷ niệm vào và lưu thành dạng UNICODE (không phải UTF-8).
 
Chỉnh sửa cuối:
Mỗi 4rum 1 kiểu a à :D

E dùng file vn.py của anh, làm theo hướng dẫn để chuyển sang việt, gõ xong e nhấn Run thì error systax.

A nói rõ cách Vh 1 câu của 1 file nào đó luôn được không? Ví dụ cho dễ hiểu vì e là tay ngang, cũng không hiểu lắm :)
 
Mỗi 4rum 1 kiểu a à :D

E dùng file vn.py của anh, làm theo hướng dẫn để chuyển sang việt, gõ xong e nhấn Run thì error systax.

A nói rõ cách Vh 1 câu của 1 file nào đó luôn được không? Ví dụ cho dễ hiểu vì e là tay ngang, cũng không hiểu lắm :)

Bạn phải chép file vn.py vào cùng chỗ với file al.py: ở \Python\Lib

import appuifw
import vn

s = vn.Telex( 'Trwowfng ddowfi' )
appuifw.note( s )

Cũng đơn giản phải không?
Nếu có khó khăn cứ hỏi (qua diễn đàn hay qua email quocsan@gmail.com)

À, những hình tôi upload lên đến giờ là do sử dụng chương trình chụp màn hình (screen capture) trong file "Screenshot_s60_3rd_v3.02.zip" đính kèm (diễn đàn hạn chế file zip ở mức 181 kb - hơi kẹt nhỉ).
Screenshot for Symbian OS
Version 3.02
Copyright 2005 - 2008, Antony Pranata
http://www.antonypranata.com
Sẵn đưa lên luôn vì có thể có người cần.
 
Chỉnh sửa cuối:
Posted via Mobile Device
quocsan co biet pm nao chuyen doi tu file nguon cua python; .py chay bang python shell ay ,thanh file .sis cai vao de chay ung dung cho nhanh .pm tren dien thoai thi tot
 
Back
Top