ورود

View Full Version : چند نفر از دوستان این قسمت Nokia با سیستم عامل S60 دارند؟



rezaTavak
سه شنبه 02 بهمن 1386, 09:00 صبح
سلام
شاید بد نباشد که با هم برنامه نویسی بانک اطلاعات در موبایل را بررسی کنیم اما نه در فاکس بلکه در python یعنی همون ادامه مقاله SQL را می خواهم در موبایل و پیتون نشان دهم لطفا هر کس موبایل Nokia با سیستم عامل S60 دارد در اینجا پست بگذارد تا ببینم آیا تعداد کافی است؟

mehran_337
سه شنبه 02 بهمن 1386, 10:57 صبح
حالا نوکیا با سیستم عامل سیمبین نمی شه؟؟؟

rezaTavak
سه شنبه 02 بهمن 1386, 12:22 عصر
نه هر مدلی python نمیشه روش نصب کرد.

مثلا UIQ فعلا در حال توسعه است.

http://sourceforge.net/project/showfiles.php?group_id=154155

بسته به مدل Symbian نگارش مناسب را دانلود کنید.

mehran_337
چهارشنبه 03 بهمن 1386, 09:12 صبح
جناب توکل!
مبحث خوب و مفیدی را راه اندازی کردید (مثل بقیه مطالبتان)
لطف کنید بفرمائید از کجا بفهمیم که گوشی x این قابلیت را دارد

rezaTavak
چهارشنبه 03 بهمن 1386, 10:17 صبح
مثال گوشی من N73 است مشخصات آن:

http://www.gsmarena.com/nokia_n73-1550.php

است پس سیستم عامل آن:

Symbian OS 9.1, S60 3rd edition
حال دو فایل : PythonForS60_1_4_2_3rdEd.SIS (http://downloads.sourceforge.net/pys60/PythonForS60_1_4_2_3rdEd.SIS?modtime=1200899135&big_mirror=0) و PythonScriptShell_1_4_2_3rdEd.SIS (http://downloads.sourceforge.net/pys60/PythonScriptShell_1_4_2_3rdEd.SIS?modtime=12008991 45&big_mirror=0) را دانلود میکنم و ابتدا فایل اول را در گوشی نصب میکنم و سپس فایل دوم را .


همینطور برای دیگر گوشی ها ابتدا فایل pyhtonForS60 و سپس PythonScriptShell .

لیست گوشیهای S60 :
http://www.s60.com/life/s60phones/browseDevices.do

mehran_337
چهارشنبه 03 بهمن 1386, 11:07 صبح
آقارضا گوشی ما هم بله .
پس بسم الله

rezaTavak
چهارشنبه 03 بهمن 1386, 17:22 عصر
باید این دو فایل را نصب کنید در لیست برنامه ها یک شکل مانند لوگوی پیتون اضافه خواهد شد:

http://www.python.org/images/python-logo.gif

هر کسی نصب کرد سپس در Stick memory یک شاخه با نام python ایجاد کنید کسانی که Stick memory ندارند هم در phone memory یک شاخه به اسم python با نصب این برنامه ساخته می شود. بعدا طرفند لازم را خواهم گفت.

پس از اجرای برنامه دکمه option وجود دارد. :

run script هر اسکریپتی که در مسیرهای c:\python,e:\python باشد را نمایش می دهد و هر کدام را انتخاب کنید اجرا می کند.


interactive console هم مانند پنجره دستورات فاکس است که دستورات حین تایپ را بلافصل اجرا می کند. کسانی که stick momory ندارند این دستورات را در کنسول تایپ کنند و کلید وسط joystick بعنوان اینتر است را بزنند. دقت کنید python به بزرگی و کوچکی حروف حساس است.



import e32
e32.file_copy('c:\data\python\*.*', 'c:\python\*.*')
چون عملا شما به درایو C از طریق file manger دسترسی ندارید.
این تکه کد هر فایلی داخل شاخه python باشد که شما در phone memory با file manger ساخته اید را به درون c:\pyhton کپی می کند. (دقت کنیدفقط شاخه c:\data\ در file manger به صورت phone memory نمایش داده می شود.)
درایو d همان رم است (رم واقعی مانند کامپیوتر که بصورت رم درایو است.)

درایو z هم جایی است که در آن سیستم عامل قرار دارد.

kia1349
چهارشنبه 03 بهمن 1386, 19:36 عصر
خوبه رضا جان.چند وقت پیش توی یکی از همین سایتهای موبایل و ... دیده بودم بچه های ایرانی دارن از این کارا میکنن.
ما فقیر بیچاره ها n70 داریم .ولی خوب بسم الله

rezaTavak
پنج شنبه 04 بهمن 1386, 08:48 صبح
البته نطر من آموزش پیتون نیست ولی بد نیست این چند نکته را بدانید:

import

برای لود کردن ماژولها استفاده می شود. اکثر کارها در ماژولها هستند. که شامل کلاسها می شوند.

ماژول مورد استفاده در اینکار e32db است. پس با دستور زیر این ماژول را لود میکنیم. (چیزی مانند SET CLASSLIB در فاکس پرو)


import e32db


در این ماژول یک کلاس به اسم Dbms است ز طریق آن کار خواهیم کرد. یعنی دستورات SQL را به سیستم می خورانیم. و کلاس دیگری به اسم Db_view که برای بازگردانیدن نتیجه SELECT از آن استفاده می شود.

خب پس:



import e32db
db = e32db.Dbms()
dbv = e32db.Db_view()


حال دو متغیر db برای دادن دستورات و dbv برای نتیجه SELECT SQL تعریف شد.
اما قبل از آن باید بداند روی چه دیتابیسی کار میکند. برای ایجاد دیتابیس:


db.create(u'c:\\test1.db')

و بعد از ایجاد دیتابیس


db.open(u'c:\\test1.db')

u برای نشان دادن رشته Unicode قبل از رشته است.
خب حال برای اجرای دستورات مثل زیر عمل می‌کنیم:



db.execute(UnicodeStringSQL)


مثال:



db.execute(u"CREATE TABLE person (id COUNTER, name VARCHAR)")

rezaTavak
شنبه 06 بهمن 1386, 12:31 عصر
خلاصه دستورات:


# 'SELECT' is the most popular SQL
SELECT select-list FROM table-name [ WHERE search-condition ] [ ORDER BY sort-order ]
# 3 search condition types: compare, like, null

# DML : INSERT, DELETE, UPDATE
INSERT INTO table-name [ ( column-identifier,… ) ] VALUES ( column-value,… )
DELETE FROM table-name [ WHERE search-condition ]
UPDATE table-name SET update-column,… [ WHERE search-condition ]
# DDL : Work with the schema
CREATE TABLE table-name (column-definition,…)
DROP TABLE table-name
ALTER TABLE table-name { ADD add-column-set [ DROP drop-column-set ] | DROP drop-column-set }
CREATE [ UNIQUE ] INDEX index-name ON table-name ( sort-specification,… )
DROP INDEX index-name FROM table-name
و خلاصه انواع داده در جداول اطلاعاتی:


['BIT', 'INTEGER', 'COUNTER', 'BIGINT', 'FLOAT',
'TIMESTAMP', 'VARCHAR(n)', 'LONG VARCHAR']
# COUNTER is an auto-incremented unsigned integer


یک کلاس برای واکشی اطلاعات:


def Q(sql):
if sql.upper().startswith('SELECT'):
dbv.prepare(db, unicode(sql))
dbv.first_line()
rows = []
maxlen = [0] * dbv.col_count()
for i in range(dbv.count_line()):
dbv.get_line()
result = []
for i in range(dbv.col_count()):
try:
val = dbv.col(i+1)
except: # in case coltype 16
val = None
result.append(val)
maxlen[i] = max(maxlen[i], len(str(val)))
rows.append(result)
dbv.next_line()
fmt = '|'+ '|'.join(['%%%ds' % n for n in maxlen]) + '|'
for row in rows:
print fmt % tuple(row)
else:
n = db.execute(unicode(sql))
print '%d rows affected' % n
و طریقه استفاده :



Q("CREATE TABLE person (id COUNTER, name VARCHAR)")

دقت کنید که فایلهایتان را در شاخه e:\python در موبایل کپی کنید و حتما پسوند py داشته باشند.