اردو سورٹنگ کیسےکی جائے؟

محسن حجازی

محفلین
اصل میں سٹرنگ سارٹ کا کوئی بھی الگورتھم دیکھ لیجئے، بس وہی چل جائے گا۔ میں بھی دیکھتا ہوں۔
 

نبیل

تکنیکی معاون
کام بن گیا ہے۔ اور اس کا طریقہ بھی کافی آسان نکلا ہے۔ اس کا طریقہ یہ ہے کہ صوتی کی بورڈ کے حروف کو ری میپ کر دیا جائے۔ ذیل کے پائتھون کوڈ میں اس ری میپنگ کو دکھایا گیا ہے:

کوڈ:
Normalized={}
Normalized['A']='1'
Normalized['a']='2'
Normalized['b']='3'
Normalized['p']='4'
Normalized['t']='5'
Normalized['T']='6'
Normalized['C']='7'
Normalized['j']='8'
Normalized['c']='9'
Normalized['H']='A'
Normalized['K']='B'
Normalized['d']='C'
Normalized['D']='D'
Normalized['Z']='E'
Normalized['r']='F'
Normalized['R']='G'
Normalized['z']='H'
Normalized['X']='I'
Normalized['s']='J'
Normalized['x']='K'
Normalized['S']='L'
Normalized['J']='M'
Normalized['v']='N'
Normalized['V']='O'
Normalized['e']='P'
Normalized['G']='Q'
Normalized['f']='R'
Normalized['q']='S'
Normalized['k']='T'
Normalized['g']='U'
Normalized['l']='V'
Normalized['m']='W'
Normalized['n']='X'
Normalized['N']='Y'
Normalized['w']='Z'
Normalized['W']='a'
Normalized['o']='b'
Normalized['h']='c'
Normalized['O']='d'
Normalized['U']='e'
Normalized['u']='f'
Normalized['i']='g'
Normalized['y']='h'

اس کے بعد ذیل کے فنکشن کی مدد سے کسی بھی ترسیمے کے صوتی اردو نام کا نارملائزڈ متبادل حاصل کیا جا سکے گا:


کوڈ:
def getNormalized(strWord):
	strResult=""
	count=len(strWord)	
	for c in strWord:
		strResult+=	Normalized[c]
	return strResult

اس طرح ترسیمہ جات کا اردو حروف تہجی کے لحاظ سے تقابل کرنا ممکن ہو جائے گا۔ اس کے لیے ذیل کا کمپیریٹر فنکشن استعمال کیا جا سکتا ہے:

کوڈ:
def cmpNormalized(str1, str2):
	strNormalized1=getNormalized(str1)
	strNormalized2=getNormalized(str2)
	return cmp(strNormalized1, strNormalized2)

اسی کمپیریٹر فنکشن کو ہم سورٹنگ میں بطور پیرامیٹر استعمال کریں گے۔ مثال کے طور پر اگر ترسیمہ جات کے نام words نام کے لسٹ ویرئیبل میں سٹورڈ ہوں تو اسے اردو حروف تہجی کے اعتبار سے سورٹ کرنے کے لیے sort فنکشن ذیل کے انداز میں کال کیا جائے گا:

کوڈ:
words.sort(cmpNormalized)

میں اس فنکشن کو ٹیسٹ کر چکا ہوں اور یہ ٹھیک کام کرتا نظر آ رہا ہے۔ لیکن دیکھنا یہ ہے کہ میں نے اس میں اردو حروف تہجی کی جو ترتیب مقرر کی ہے وہ درست ہے یا نہیں؟ مثال کے طور پر میں نے ئ کو ء کے بعد ، ۃ کو ہ کے بعد رکھا ہے۔ اسی طرح آ کو ا سے پہلے رکھا گیا ہے۔ یہ بھی دیکھنا پڑے گا کہ اس میپ میں کوئی اردو حروف مسنگ تو نہیں ہے۔ آپ سب دوستوں سے اس کی پڑتال کی درخواست ہے۔
 

arifkarim

معطل
پڑتال کے دوران ایک چیز یہ سامنے آئی ہے کہ وہ گلفس جنکو ہم نے رینیم نہیں کیا، مثلا بغیر نقطے والے اور صرف نقطے والے، وہ بھی اردو الفاظ میں‌ ظاہر ہو رہے ہیں۔ کیا گلفس کی مرجنگ اور سورٹنگ کے دوران اس قسم کے گلفس بھی شامل ہوں گے یا یہ آٹو میٹک آوٹ آف آرڈر ہو جائیں گے؟
 

محسن حجازی

محفلین
یہی ترکیب میرے ذہن میں بھی تھی کہ انہیں انگریزی میں تبدیل کر کے پھر سورٹ کر لیا جائے۔ بہت خوب۔ مجھے یہاں اگر صوتی کلیدی تختے کی میپنگز مل جائیں تو یہ کام ویک اینڈ پر مکمل کر سکتا ہوں۔
 

arifkarim

معطل
یہی ترکیب میرے ذہن میں بھی تھی کہ انہیں انگریزی میں تبدیل کر کے پھر سورٹ کر لیا جائے۔ بہت خوب۔ مجھے یہاں اگر صوتی کلیدی تختے کی میپنگز مل جائیں تو یہ کام ویک اینڈ پر مکمل کر سکتا ہوں۔

فونٹیک کیبورڈ میپنگ یہاں دستیاب ہے:
http://www.urduweb.org/mehfil/showthread.php?t=12554
 

arifkarim

معطل
نبیل بھائی ایک یونیکوڈ ویلیو ''ۂ'' کی بھی ہوتی ہے۔ جو کہ ان گلفس میں بہت جگہوں پر استعمال ہوئی ہے۔ لیکن افسوس ہمنے کبھی بھی اسکو کوئی قدر نہ دی، اسلئے مجبورا مجھے پڑتال کے دوران ان تمام گلفس کے آگے عدد ''1'' لگانا پڑا ہے۔ :(
اسی طرح ''ؤ'' کو بھی ''w'' پر میپ کر رہا ہوں۔
 

نبیل

تکنیکی معاون
عارف، ۂ کامیں کچھ کرتا ہوں۔ لیکن ؤ تو W (کیپیٹل لیٹر ڈبلیو) پر پہلے سے میپ ہوا ہوا ہے۔
 
Top