الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن طريقة كتابة الكود التالي بشكل سليم

مغلق
بدأه man4ever في 27 يونيو 2007 · 23 رد · 2,967 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أولاً أنا مبتدأ بالفيجول بيسك ولست على دراية بكامل طريق كتابة الوظائف والجمل الشرطية فيا ريت من أحد الإخوان التكرم بالمساعده بما يلي

لدي تكست مكتوب فيه نص معين أريد function تقوم بما يلي :

تقوم بقراءة النص حرف حرف وبكل حرف تقوم بعمل جمله شرطية اذا كان الحرف الذي فبل هذا الحرف هو كذا والحرف الذي يليه هو كذا إستبدال هذا الحرف بحرف اخر يحدد طبعاً واذا لم ينطبق الشرط ينتقل للشرط الثاني وهو نفس الأول ولكن مع تغير في الرمز وبالنهاية كتابة الناتج بتكست تاني

تصوري كالتالي :

اقتباس
عداد للتنقل من حرف للحرف الذي يليه وهكذا يبدأ من الرقم1 وطبعاً يكون طوله = طول النص (Len(text1.Text أو بطريقة while loop

( ثم هنا جمل الشرط والرموز + و - للتوضيح فقط وسوف يتم إستبدالها بعدة قيم)

اذا كان الرمز الذي يسبقه + والرمز الذي يليه + إستبدل الحرف بحرف ج

وإلا إذا كان الرمز الذي يسبقه + والرمز الذي يليه - إستبدل الحرف بحرف ق

وإلا اذا كان الرمز الذي يسبقه - والرمز الذي يليه + إستبدل الحرف بحرف ع

وإلا اذا كان الرمز الذي يسبقه - والرمز الذي يليه - إستبدل الحرف بحرف ع

وتكرار نفس العملية لكل أحرف النص

ومن ثم يكتب الناتج النهائي بتكست أخر

والله أعلم أن كتابة مثل هذا الفنكشن ليس صعب على الإخوان فهو يشبه إلى حد ما طريقة كتابة الكود بلغة الجافا الخاص بالجمل الشرطية العدادات التي درستها ولكني لم أنجح بكتابة الكود بلغة ببرنامج الفيجول وهو أعتقد يتكون من 5عدة أسطر فقط ولكن للأسف ما زلت مبتدأ بإستخدام الفيجول ......

فيا ريت المساعده ممن يقدر

ويسعد مساكم

تم تعديل هذه المشاركة بواسطة man4ever في 27 يونيو 2007 في 16:59

#2

أي مساعده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#3

السلام عليكم أخي العزيز عندي سؤالان

هما :

هل هذا ماكنت تريده هنا /index.ph...=131192&hl=

السؤال التاني إذا كنت محتاج الكود بشدة أو تحتاجه في أقرب وقت

لا مانع من المساعدة أم إذا كان عندك متسع من الوقت وتريد التعلم

فيسعدني جدا أن أذهب ويذهب معك أعضاء المنتدى وحدة وحدة إن شاء الله تعالى

فما هو جوابك

#4

السلام عليك اخي الكريم

, جرب كده ,,, ده المبدا الاساسي

If Right(Text1, 4) = "ABCC" Then
		Text1 = Replace("ABCC", "BC", "XZ")
	End If

Ala2_VB___Replace.rar

اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#5

أخي الكريم Ala2 VB آمل أن يفيده الكود

رغم أنني أعتقد انه ناقص لانه يرد الحرف على اليمين وعلى اليسار

وآمل أن يجيب على سؤالي

ســــــــــــــــــــــــــــــــــــــــــــــــــــــلام

#6
Ala2 VB كتب:
السلام عليك اخي الكريم

, جرب كده ,,, ده المبدا الاساسي

If Right(Text1, 4) = "ABCC" Then
		Text1 = Replace("ABCC", "BC", "XZ")
	End If

micheal R jordan كتب:
السلام عليكم أخي العزيز عندي سؤالان

هما :

هل هذا ماكنت تريده هنا /index.ph...=131192&hl=

السؤال التاني إذا كنت محتاج الكود بشدة أو تحتاجه في أقرب وقت

لا مانع من المساعدة أم إذا كان عندك متسع من الوقت وتريد التعلم

فيسعدني جدا أن أذهب ويذهب معك أعضاء المنتدى وحدة وحدة إن شاء الله تعالى

فما هو جوابك

الله يسعد مساكم خواني الكرام

إخواني بعد محاولات شتى وعدة مساعدات توصلت للكود التالي وهو شغال100%

Private Sub Command1_Click()
Dim sTemp As String, i As Integer

	sTemp = Text1.Text
	For i = 1 To Len(sTemp)

		Select Case UCase(Mid(sTemp, i, 1))
			Case "A", "B", "C"

				sTemp = Replace(sTemp, Mid(sTemp, i, 1), "X")

			Case "D", "E", "F"

				sTemp = Replace(sTemp, Mid(sTemp, i, 1), "Y")

		End Select

	Next i

	Text1.Text = sTemp
End Sub

هذا الكود تمام يقوم بقراءة النص حرف حرف وإستبدال الحرف بحرف أخر بناء على قيمته يعني إذا كان A أو B أو C يستبدله بالحرف X وإذا كان Dأو E أوF يستبدله بالحرف Y وهكذا ولكن أجتاج لإضاف أخرى إليه إنو ليس فقط يقوم بإستبدال الحرف بحرف أخر بناء على قيمته بل أن ينظر للحرف الذي يليه أيضاً يعني مثلاً لاقى الحرف إنو واحد من هاي الأحرف(A أو B أو C)بستبدلش الحرف على طول بل بروح بشوف الحرف إلي وراه إذا كان مثلاً T بستبدل الحرف (A أو B أو C) بالحرف R واذا كان الحرف الذي يله G بستبدل الحرف(A أو B أو C) بحرق W وهكذا

كمحاوله قمت بتعديل الكود ليصبح كالتالي ولكنه لم يعمل فما هو الخطأ وكيف تصويبه حيث قمت بوضع كيس داخل كيس ولكن لم ينجح فكيف الحل لذلك

Private Sub Command1_Click()
Dim sTemp As String, i As Integer, x As Integer

	sTemp = Text1.Text
	For i = 1 To Len(sTemp)
	   x = i - 1
		Select Case UCase(Mid(sTemp, i, 1))

			Case "A", "B", "C"
			   Select Case UCase(Mid(sTemp, x, 1))
					   Case "A", "B", "C"
						  sTemp = Replace(sTemp, Mid(sTemp, i, 1), "X")

					   Case "D", "E", "F"
						  sTemp = Replace(sTemp, Mid(sTemp, i, 1), "Y")
			   End Select

			Case "D", "E", "F"
				sTemp = Replace(sTemp, Mid(sTemp, i, 1), "Z")

		End Select

	Next i

	Text1.Text = sTemp

End Sub

وبخصوص قصة الوقت لأ أخي الكريم مش مستعجل لأني من فتره طويله وأنا أبحث عن كتابة كود بقوم بهذه الوظيفه أولاً كنت أحاول ذلك بلغة السي ولكن تعقدت وكما أخبرني بعض الإخوان بأن لغة الفيجول بيسك التعامل معها أيسر فبدأت بتعلمها والحمد لله والوقت ليس مهم المهم الفائده والنتيجه النهائيه .............

فأي إقتراحات تفيد الموضوع يا ريت التفضل بها حيث أنني بهاي المرحله أريد تعديل هذا الفنكشن ليستبدل الحرف بناء على قيمته وقيمة الحرف الذي يليه وبعد نجاح ذلك اطوره ليستبدل الحرف بناء على قيمته وقيمة الحرف الذي يليه والحرف الذي يسبقه قصه طويله ههههههههههههههه

ويسعد مساكم جميعاً يا رب

تم تعديل هذه المشاركة بواسطة man4ever في 28 يونيو 2007 في 00:57

#7

السلام عليكم

أولا أود أن أقول شيئا والله شكرا على على أمران

أولهما

شرح لما تريد رائع م ومفهوم

تانيا

أعتقد أنك تعرفه وهو بخصوص التعلم أولا وآخرا

وسيكون هناك ثالثا إذا كنت فهمت الكود الاول جيدا

ما علينا

حسن أخي ركز معي حاول أن تعطيني إذا كان هناك علاقة بين الحروف يعني

كما تفضلت مثلا إذا كانت A or B or C ستغيرهم إلى X

وإذا كانت D or E or f فستحولهم إلى Y وهكذا فهذا في حد ذاته

تستطيع عمله بدون الجوء إلى الحروف هكذا A .B.C.D.E.X.Y

ولكن التعامل مع

اقتباس
Asc("a)"

المهم هناك مرفق على حسب ما ذكرتًه في المشاركة الاولى لانني كتبه بعد أن أجبتك بالسؤالين

وأما عن مشاركتك الاخيرة فقد يفتح لك الكود بعض الافكار ونحن هنا

ســـــــــــــــــــــــــــــــــــلام

The_Function.rar

#8

جواب بسيط قبل أن أنام إذا كانت رسالة الخطأ هذا

اقتباس
Run-time error '5'

Invalid procrdure call or argument

فالسبب هو

Select Case UCase(Mid(sTemp, x, 1))

لانه عندما يكون مثلا الحرف A هو الاول وعندك x=i-1

فهذا يعني أنك تأخد الحرف الذي قبل الاول ألا وهو .... لا شيء

ســــــــــــــــــــــــــــــــــــــــلام

تصبحون على خير

والبقية تأتي

واعلم أخي أنه ليس بالامر الكبير إذا لم تجعله كذلك

#9
micheal R jordan كتب:
جواب بسيط قبل أن أنام إذا كانت رسالة الخطأ هذا

فالسبب هو

Select Case UCase(Mid(sTemp, x, 1))

لانه عندما يكون مثلا الحرف A هو الاول وعندك x=i-1

فهذا يعني أنك تأخد الحرف الذي قبل الاول ألا وهو .... لا شيء

ســــــــــــــــــــــــــــــــــــــــلام

تصبحون على خير

والبقية تأتي

واعلم أخي أنه ليس بالامر الكبير إذا لم تجعله كذلك

الله يسعد مساك أخي الكريم بالفعل الكود المرفق من قبلك ولا أروع أفادني كثيراً وتعملت منه أشياء كثيره كانت غائبه عني والفضل لك بعد الله

وبخصوص الخطأ بالفعل هذه هي رسالة الخطأ التي كانت تظهر لي وتم التغلب عليها كالتالي

I i > 1 Then
	x = i -1
Else
	x = i
End If

... وأقوم حالياً بالتعديل عليه ليشمل الحروف المراد إستبدالها بشكل تلقائي بدل من تحديها يدوياً حيث يكتفي المستخدم إدخال النص وهو يقوم بعمليات الإستبدال بشكل تلقائي وثانياً تم تعديل الكود حيث الكود المرفق من قبلك يقوم بالفعل بالنظر للحرف الذي يلي الحرف والحرف الذي يسبقه ولكن يهمل الحرف نفسه(يعني اذا وجد أن الحرف الذي يلي الحرف المطلوبA مثلاً والحرف الذي يسبقه B يقوم بإستبداله بغض النظر أن قيمة الحرف نفسه فأصبح الكود التالي

Private Sub CmdChange_Click()
Dim sAfter As String 
Dim sBefore As String 
Dim i As Integer 
Dim w As String
TxtNewText = Left(TxtOldText, 1)

For i = 2 To Len(TxtOldText) - 1
[w = Mid(TxtOldText, i, 1) sAfter = Mid(TxtOldText, i + 1, 1)
sBefore = Mid(TxtOldText, i - 1, 1)

If w = "س" Then
If sBefore = "ع" And (sAfter = "ت" Or sAfter = "ث"  Or sAfter = "ج") Then
TxtNewText = TxtNewText & "ق"
  End If

ولكن لي إستفسار أخي الفاضل انظر للتالي فهذا الكود سليم هكذا

If sBefore = "1" And (sAfter = "A" Or sAfter = "B" Or sAfter = "C" ) then

ولكن لماذا لا يمكنني كذلك تحديد اكثر من قيمة لل sBefore كما يلي

If (sBefore = "1"  or "2" or "3" ) And (sAfter = "A" Or sAfter = "B" Or sAfter = "C" ) then

حيث تظهر رسالة خطأ كل مره يعني أود تحديد أكثر من قيمه لكلا الطرفان وليس فقط للsAfter (التي تكون بعد and) أيضاً للsBefore التي تأتي بعد if مباشره فما هي طريقة وضع أكثر من قيمة للsBefore (التي تأتي بعد if مباشره) كما الحال بالنسبه للsAfter (التي تأتي بعد And ) حيث إعتمدت اسلوب القوسمان ولكن تظهر رسالة خطأ فكيف يمكن عمل مثل ذلك ...

ومعذره يا غالي ولكن لم أفهم ما قصدته ب:

اقتباس
إذا كانت A or B or C ستغيرهم إلى X

وإذا كانت D or E or f فستحولهم إلى Y وهكذا فهذا في حد ذاته

تستطيع عمله بدون الجوء إلى الحروف هكذا A .B.C.D.E.X.Y

يعني هل يمكن بدل إستخدام كلمة or وضع نقاط بين الحرف؟؟؟؟؟؟؟؟؟؟؟؟

وشكراً لك مره أخرى

#10

السلام عليكم

غير كذا

If (sBefore = "1"  or "2" or "3" ) And (sAfter = "A" Or sAfter = "B" Or sAfter = "C" ) then

If (sBefore = "1"  or sBefore ="2" or sBefore ="3" ) And (sAfter = "A" Or sAfter = "B" Or sAfter = "C" ) then
#11

السلام عليكم أخي

الحمد لله وحده والفضل له وحده ولا فضل لي عليك

أخي الكريم آمل أن تقبل مني هذا الطلب والله إن أحب لغة القرآن

ولكن هلا تفضلت في أمثلتك بوضعها بحروف انجليزية

اقتباس
If w = "س" Then

سيكون أفضل

اقتباس
If w = "a" Then

آسف ولكن هلا تقبلت طلبي

أما بعد

في ردي الاول كنت مشغولا جدا لذلك أجبت ذلك الجواب المقتضب الذي يجب عليك أن تفهمه

جيدا أخي الكريم الكمبيوتر لا فرق عنده بين sBefore و sAfter فكيف كتبت في sAfter

sAfter = "A" Or <sAfter> = "B" Or <sAfter> = "C"

وفي sBefore

sBefore = "1"  or <No Thing>"2" or <No Thing>"3"

بدل أن تكتب sBefore في كل مرة مثل sAfter كما كتبت سابقا هكذا

sBefore = "1"  or sBefore ="2" or sBefore ="3"

حسن ما علينا

بخصوص السؤال الاخير عندي سؤال

هل عندك أي نمط في تغيير الحروف أم أنها عشوائية ?

لاحظ معي

اقتباس
إذا كانت A or B or C ستغيرهم إلى Z

وإذا كانت D or E or f فستحولهم إلى Y

وإذا كانت I or H or G فستحولهم إلى X

إذا لاحظت جيدا هذا المثال بالظبط ستجد أنه يأخذ الثلاث حروف الاولى ويغيرها بالحرف الاخير في الابجدية

ويأخد الثلاث الحروف الثانية ويغيرها بالحرف التاني بعد الاخير

يعني يمكنك القول أن هذا لا أعرف ماذا يسمى ولكن عنده نمط

يمكنك كتابة برنامج ليتعامل مع هذه الخاصية بدل كتابة الحروف

اقتباس
تستطيع عمله بدون الجوء إلى الحروف هكذا A .B.C.D.E.X.Y

قصدت أنه بدل التعامل مع الحروف كما هي A .B.C.D.E.X.Y تتعامل مع Keyascii الخاص بها

ولكن لا عليك من هذا الان وقد تتعلم ذلك من بعد

ودمت في رعاية الله وعندي طلب إن لم البرنامج خاص أو شيء من هذا القبيل تستطيع رفعه لنستفيد منه

اقتباس
تصدقني ولا أحلف لك

لا أعرف ماذا تريد من هذا البرنامج بالضبط

وكما قلت إن لم يكن شخصيا خاصا تستطيع شرح حاجتك إلى هذا البرنامج قليلا

وفي المرفق KEYASCII للحروف الابجدية الانجليزية

Letters_Ascii.rar

#12

أولاً يسعد صباحك وبكل صدق طريقتك في الحوار تدل على مستوى كبير من الأدب والإحترام فتشكر على ذلك أخي الكريم

بخصوص

sBefore = "1"  or sBefore ="2" or sBefore ="3"

بالفعل الله يلعن الشيطان من كثر العجله لم اكن أنتبه أنني لم أكن أضع sBefore بعد كلمةOR كما كنت أفعل مع sAfter والشكر لك للفت النظر لهاي النقطه...

نأتي للنقطه الثانيه البرنامج سوف أرفعه للفائده بعد إنهاءه مع أنه يمكن كثيرين ما يستفيدوا منه أو بالعكس يمكن كثيرين جداً يستفيدوا منو وهو ليس شخصي أو خاص فقد طرحت فكرته منذ ما يقارب الست أشهر وهو بإختصار شديد للتعامل مع الرسيفر وذلك لدعم اللغه العربيه(لذلك إستخدمت الحروف العربيه) فيه حيث للرسيفر جدول خاص به لتعريف الحروف العربيه بلغة الهكس يختلف عن جدول الهكس المستخدم من قبل الكمبيوتر للتعامل مع الحروف العربيه مثلاً لو فرضنا الكمبيوتر يعطي الحرف أ الرقمF3 بلغة الهكس بينما الرسيفر يعطي الحرف أ الرقمD4 بلغة الهكس....أعتقد لهنا الفكره واضحه وولكن هاي مش مشكله لإنو بعملية إستبدال بسيطه يمكن إستبدال كل حرف بأخر يتعرف عليه الرسيفر

يعني كما قلت لك الرسيفر يعطي الحرف أ الرقمD4 فبكل بساطه أجد ما هو الحرف الذي يقابل هذا الرمز بالكمبيوتر يعني وجدت مثلاُ الكمبيوتر يعطي الرمزD4 للحرف س فبعمل فنكشن صغير يصبح يدور بالنص وأين يجد الحرف أ يعوض عنه بالحرف سين وهكذا لباقي الأحرف وعند إرسال النص للرسيفر سوف تظهر الحروف بشكل سليم جداً( يعني السين سوف تظهر بالرسيفر أ وهو المطلوب وهكذا) لأن الأمر بسيط هكذا ولكن المكشله الكبيرة التي واجهتني والتي أدت بي للذهاب في طريق طويل أخذ الكثير من الوقت في محاولة تحقيقه وهو كالتالي أن الرسيفر كما قلت له جدول خاص بالغة العربية يعطي لكل حرف رمز بالهكس ولكن لكل حرف يعطيه أكثر من رمز بلغة الهكس إعتماد على موقعه بالكلمه يعني حرف الباء بأول الكلمه يعطيه الرمزB4وبأخر الكلمه C1 وبوسط الكلمه C5 وهكذا لباقي الأحرف بينما الكمبيوتر يعطي الحرف ب رمز واحد بغض النظر على موقعه بالكلمه وبعمليات LOGIC ومنطق يظهر الحرف بالشكل السليم بالكلمه وهنا كانت القصه الطويله حيث بدأت أفكر بتحويل كل النص للهكيس ومن ثم مقارنه كل هكس(طبعاً تتكون من2بايت يعني رقمان) بالهكس التي تسبقها والهكس التي تليها لمعرفه هل هذا الحرف متصل بالحرف الذي قبله والذي بعده ام فقط متصل بجهه من طرف واحد وإستبداله تبعاً لذلك قصه طويله جداً وكانت المكشله أنني لم أدري كيف أضع فنكشن ينظر للهكس(2بايت) ك بايت واحد وكذلك بالنسبه لل2بايت التي تليها والتي تسبقها فطرحت الموضوع منذ كما قلت لك 6أشهر بقسم

منتدى تصميم التطبيقات (و يشمل نظم التشغيل) و تعريبها من هنا ومن هنا

ومن ثم بقسم مبرمجي لغة جافا JAVA من هنا

وأخيراً بقسم مبرمجي C و ++C و C++.NET من هنا

ولكن في جميع تلك الأقسام لم أجد الردود المناسبه إما لأنني لم أطرح الموضوع بشكل سليم أو لأنني كنت أسير بالإتجاه الخاطىء ولكن بهذا القسم لم أطرح الموضوع كالسابق بل قمت بمحاولة لكتابة كود بسيط ومن ثم خطوه خطوه تكبيره ليحقق المطلوب بدل من طرح الموضع ككل مما يؤدي للكثيرين لإستصعابه وأعتقد أن هاي الطريقه أفضل حيث سابقاً كنت أطرح الموضوع ليضع لي أحد الإخوان الكود جاهز اما الأن فانا أصبحت أحاول وضع الكود وأطلب التعديل عليه عند ظهور خطأ لا أعرف معالجته أو طلب معرفة طريقه عمل كود معين وهذا والحمد لله أفادني كثيراً حيث أصبحت على الأقل أبحث كثيراً وأقرأ كثيراً عن الفيجول والوظائف وطرق التعامل معها والإستدعاء مما سوف يؤدي بمشيئة الله بالنهاية أن اخرج بالبرنامج بالشكل المطلوب وأكون كذلك تعلمت على الأقل مبادىء لغة برمجه قد تفيدني مستقبلاً لأشياء أخرى...(هذا هو الموضوع بإختصار شديد ههههههههههههههه)

أما الأن لم أعد أنظر لقصة الهكس والتعامل معها بل التعامل مع الحروف العربيه بشكل طبيعي ووضع فنكشن ينظر للحرف وما يسبقه وما يليه يعني اذا وجد حرف الباء والحرف الذي يسبقه فراغ أو ألف أو راء.... والحرف الذي يلسيه مثلاً ج او ح أو م يتعرف عليه بأنه حرف متصل من الطرف الثاني وغير متصل من الطرف الأول(بـــ) فيعوض عنه بحرف الباء الذي يأتي بأول الكلمه (طبعاً هذا يكون مأخوذ من جدول الحروف التي يتعامل معها الرسيفر حيث وجدت أن حرف الباء بأول الكلمه يظهر بالكمبيوتر كأنه حرفS بالإنجليزي يعني كما قلت إذا تحقق الشرط السابق يعوض بدل حرف الباء حرف S (الذي يمثل بــــ بأول الكلمه) وعند نقل النص للرسيفر سوف يظهر حرف الباء هنا بالشكل السليم وهو بـــــ وهو المطلوب وهكذا لباقي الأحرف وهاي أعتقد أهون كثيراً من التعامل مع الهكس وجداول الUniCode التي لا يفقه الرسيفر طريقه التعامل معها ويظهر الحروف عند إستخدامها ك؟؟؟؟؟؟ ؟؟؟؟؟ علامات سؤال غير مفهومه...

أتمنى أن تكون الفكرة قد وصلت لك أخي الفاضل حيث أنني أصبحت أتمنى أن أجد شخص أطرح هذه الفكره ويقول إنه فهم المقصود منها ههههههه

وكما أخبرتك هذا الكود سوف يكون مفيد للكثيرين بتصوري لإنو أن أعمل هذا الكود للتعامل مع نوع محدد من الرسيفرات يحتوي جدول به للغه العربيه يختلف من نوع رسيفر لأخر فبذلك يصبح مالك أي جهاز يود أن يدعم جهازه اللغه العربيه( كملف قنوات باللغه العربيه التي لا تدعمها معظم الرسيفرات او تسمية القوائم داخل الباتش والمنيو بأسماء عريه بالأجهزة التي لا تدعم ذلك) فقط يستبدل بهذا الكود الجدول الذي أنا واضعه للتعامل مع الرسيفر A بجدول أخر للتعامل مع الرسيفر الذي نوعهB .....

ولأاني أعتقد دائماً أن الصور تغني عن الشرح تفضل أنظر لكل ما قصدته من الأول الصوره الأول عند إرسال ملف ترجمه فلم للرسيفر كما هو بدون أي تعديل

arabic1hu7.gif

النص واضح إنو غير مفهوم إطلاقاً حسناً عند وضع الفنكشن البسيط لإستبدال كل حرف بما يناسبه أصبح النص اوضح قليلاً غير متصل كالتالي

كلمة الفريق العربي تظهر -------> ا ل ف ر ي ق ا ل ع ر ب ي بشكل غير متص بالتالي غير مفهوم ولكن عند أخذ جزء صغير من النص والقيام بعمليه التغير بالحروف بناء على ما يسبقها وما يليها بشكل يدوي وبدائي أصبح الأمر كما بالصوره...

image2wu2.gif

أعرف أنني كتبت محاضره طويله وليس مجرد رد هههههه ولكن دائماً أحب تبسيط الأمور قدر الإمكان لفهم المراد وأعتذر مره أخرى عن الإطاله

وبخصوص جدولASCII هل يوجد جدول مثله يعطي رمز للأحرف العربيه وأقصد هنا أن يكون معطي لكل حرف رمز بناء على موقعه من الكلمه حيث حملت عدة جدوال من هذا القبيل وكان كل جدول يختلف كلياً عن الأخر بطريقة جعلتني لا أعرف أيهم الصواب فلم أتعامل معهم .....

ويسعد صباحك كمان مره...

#13

السلام عليكم

أخي الكريم لو كنت أطلب شيئا عند أحد (والله لا حسد والله لا حسد) لطلبت طريقتك في شرح المطلوب

ووالله لا مجاملة

أخي هناك مشكلة بالنسبة لحروف ASCII العربية

اقتباس
اتفق العرب على أن لا يتفقو

وأظن أنه يختلف على حسب شركتين متأكد من صخر وشركة أخرى لا أعرفها

المهم المهم

بخصوص الكود ASCII آمل أن تجرب هذا في عدة حواسيب

كما هناك مرفقان أحدهما يعتمد على

اقتباس
لا تعطني كل يوم سمكة ولكن علمني كيف أصطاد

والاخر

اقتباس
أنا عربي عربي عربي عربي

هذه طلباتك

آمل أن تفيدك في حل المشكل ومهما طال الامر أو قصر لا تقنط من رحمة الله الواسعة

وسنبقى على اتصال بإذن الله تعالى إلى أن نصل إلى الحل لالشافي الكافي

All_ASCII.rar

Arab_Char.rar

#14

عندي طلب هل يمكن أن ترفق لنا صورة لنفس الفقرة

يعني

صورة مكتوبة خاطئة بتلك الطريقة كما في الصورة الاولى

ونفس الصورة ولكن صحيحة كما الصورة التانية

آمل أنك فهمتني

يعني خذ مثلا الصورة الاولى وصححها

تم تعديل هذه المشاركة بواسطة micheal R jordan في 29 يونيو 2007 في 17:46

#15
micheal R jordan كتب:
عندي طلب هل يمكن أن ترفق لنا صورة لنفس الفقرة

يعني

صورة مكتوبة خاطئة بتلك الطريقة كما في الصورة الاولى

ونفس الصورة ولكن صحيحة كما الصورة التانية

آمل أنك فهمتني

يعني خذ مثلا الصورة الاولى وصححها

مساء الخير أخي الكريم

أعتذر عن عدم الرد بالأمس وذلك بسبب إنقطاع للنت....

المهم أخي العزيز بخصوص الصور بإذن الله غداً أضعهم بإذن الله لإنو الصور التي أرفقتها فوق مأخوذه منذ 4أشهر حيث كان لدي كرت تلفزيون ولكن تلف منذ الشهرين بإذن الله غداً ألتقط الصور من عند صديق لي يملك كرت تلفزيون مع إنو لدي كاميرا ديجيتال ولكن تصوير شاشه التلفاز بكاميرا ديجيتال ليس فعال جداً وتظهر الصور غير دقيقه ولكن سوف أحاول الأن إلتقاط صور للتلفاز يظهر الترجمه وإن ظهرت الصور بشكل جيد أضعها أو غدأ أضع الصور المأخوذه من كرت التلفزيون...

المهم نعود للموضوع أخي الكريم الحمد لله تقريباً إستطعت إستكمال70% من البرنامج وأصبح يأخذ نص كامل ومن ثم يحوله بشكل سليم بنسبة90% ولكن هنالك مشكلتان لم أستطع التعامل معهما..

الأولى:

الكود التالي

For i = 2 To Len(Text6) - 1

يبدأ تحويل النص من الحرف الثاني للحرف قبل الأخير مما يجعل الحرف الأول والأخير يظهر كما هو دون تعديل فقمت بإضافة فراغ لأول النص ولأخره وبالتالي أصبح النص كاملاً يتحول

Text2.Text = " " & Text1.Text & " "

ولكن لم أعرف كيف أقوم بعد تحويل النص بإعادة إزالة الفراغ الذي وضغته بأول النص....

ثانياً عند تحويل نص يتكون من أكثر من سطر واحد يعني عند وجود عدة أسطر يقوم بتحويل كل الأسطر ولكن يضع الناتج بسطر واحد

يعني لو كان النص الذي لدي هكذا

aaaa

bbbb

ccccc

بعد التحويل يظهر الناتج بجانب بعض وليس بأسطر كما كان بالأصل

aaaa bbbb cccc

فكيف أجعله يظهر النص المحول بأسطر كما كان وليس كامل النص يظهره بشكل أفقي على سطر واحد

ويسعد مساك مره أخرى...

#16

السلام عليكم أخي

والله شغلتنا عليك

كيف حالك أتمنى أن تكون بخير أما بعد

فإن وإن........... :D

ما علينا

بخصوص

الموضوع الاول

أنك تقريبا اكتملته

اقتباس
تقريباً إستطعت إستكمال70% من البرنامج وأصبح يأخذ نص كامل ومن ثم يحوله بشكل سليم بنسبة90%

فرحت لك لانه بعد كل هذه المدة والانتظار والبحث من قسم إلى آخر

وأخيرا والحمد لله ستصل إلى مبتغاك بإذنه تعالى

الموضوع التاني

بخصوص الحرف الاول والاخير

أخي الكريم بكل سهولة إذا أردت التعامل مع الفكرة التي خطرت عليك يعني

إضافة المسافة في أول السطر وآخره عند الانتهاء وآخر أمر سيكون استعمال الدالة

اقتباس
Trim

هذه الدالة تقوم بمسح الفراغات من كلا الجانبين لنص وهذا ما تحتاجه لانك تضيف المسافة في الاول والاخير

ولكن للإضافة

وعندنا الدالة

اقتباس
LTrim

التي تزيل المسافات من الجهة اليسرى

وبطبيعة الحال عرفت أنه الدالة

اقتباس
RTrim

تقوم بإزالة المسافات من الجهة اليمنى

يعني في حالتك ستكتب مثلا هذا الكود

Text2.Text = Trim(Text1.Text)

آمل أن يحل هذ الامر المشكلة

ولكن سأشرح لك لا حقا طريقة أخرى حسب الكود بتاعك وقد تكون أفضل وقد تكون طريقتك أفضل

إذ لا أفض من البساطة

انتهينا من هذه القصة الان

الموضوع الثالث

بخصوص

اقتباس
ثانياً عند تحويل نص يتكون من أكثر من سطر واحد يعني عند وجود عدة أسطر يقوم بتحويل كل الأسطر ولكن يضع الناتج بسطر واحد

حسن لا أعرف كيف كتبت الكود ولا أعرف كيف تتعامل مع السطر الجديد

vbNewLine
vbCrLf

هذه ثوابت الفيجوال بخصوص السطر الجديد الرجوع إلى السطرهكذا

Text1 = "لا إلاه إلا الله" & vbNewLine & "محمد رسول الله"

سترجع

لا إلاه إلا الله

محمد رسول الله

اقتباس
بدون الالوان والتكبير وما إلى ذلك :D

حسن هذا ما عليك فعله في آخر الكود لكن السؤال المهم

الله يا سيدي كيف يعرف أنه يجب عليه أن يضع علامة السطر الجديد في المكان الصحيح

سهلة

;)

كل ما عليك فعله هو أن تبحث عن الاسطر الجيد وبعد ذلك جعلها في متغير

وعند الانتهاء يعني ستحصل على سطرواحد

ستضيف كود إضافة الاسطر الجديدة

للمساعدة ستستعمل غالبا الدالتين

InStr
Replace

السبب في عدم كتابتي الكود هما أمران

أحدهما هو السبب الرئيسي وأنت تعرفه في أول مشاركة لي معك

وهو على شكل سؤال

والتاني هو أنني لا أريد أن أخمن وأعطيك كود قد يعمل

ولكنه لن يعمل جيدا كما توده وأوده لذلك استعمل هذه الدوال أو عد إلى الكود الذي كتبته

عند التحويل ولا حظ هل عندك مشكلة بخصوص السطر الجديد لمحاولة تتبع الخطأ إذا كان

نصيحة

اقتباس
حاول أن تكتب كلمات قليلة حتى تستطيع تتبع المشكلة إذا كانت في الكود

أما بخصوص الدالتين فهما بسيطتان

وآمل أن تحمل

اقتباس
كتاب المرجع للدوال البرمجية

لم أستطع إيجاد الرابط ولا أريد أن أرفعه على المنتدى لانه مرفوع أخي الكريم إبحث عنه

هنا أو في أي مكان وهو موجود وفي حال لم تجده سأرفعه لك رغم أنني متأكد أنه مرفوع على سيرفر المنتدى

وفي الاخير ما في نهايات بلقا إلا في خيالات القصص :P :D

آسف أقصد وفي الاخير

اقتباس
أعرف أنني كتبت محاضره طويله وليس مجرد رد هههههه ولكن دائماً أحب تبسيط الأمور قدر الإمكان لفهم المراد وأعتذر مره أخرى عن الإطاله

آمل أن لا أكون غفلت عن أمر وقد جل من لا يسهو

أتمنى لك التوفيق

سلامـــــــــــــــــــــــــــــــــــــي

#17

فقط بخصوص الصور آمل أن لا تتعب نفسك فلا داعي

فقط أردت أن أرى كيف يظهر لانني أحب أن أرى إذا كان هناك أي نمط

لا عليك الان من ذلك

#18
اقتباس
السبب في عدم كتابتي الكود هما أمران

أحدهما هو السبب الرئيسي وأنت تعرفه في أول مشاركة لي معك

مساء الخير أخي العزيز ولجميع الإخوة

نعم أخي الكريم لقد قمت خلال اليومين الماضيين بالبحث وتحليل الكثير من الاكواد حتى حصلت على الطريقه وأشياء أخرى كنت بحاجه إليها والحمد لله ذلك عاد علي بفائده كبيره ......

ولقد أخرجت البرنامج الأول وهو خاص بتصحيح كلمات وجمل قصيره (الهدف منه تعريب أسماء القنوات ) وطبعاً الكلمات لا تتكون من عدد كبير من الحروف والبرنامج شغال 100%

وبدأت بالبرنامج الرئيسي وهو تطوير للبرنامج الأول وهو كما أخبرتك الخاص بالترجمة ولقد أرفقت البرنامج مع 3ملفات للترجمة يا ريت تقوم بفتح البرنامج وتجربة فتح الملف الأول فيه وتحويله ومن ثم قوم بقتح وتجربة الملف الثاني وبعد ذلك الملف الثالث وطبعاً النص الناتج في كل الحالات لن يكون مفهوم لأن الرسيفر هو الذي يفهم النصوص هكذا المهم القصد من تجربتك للملفات هو أن الملف الأول ويتكون من عدد محدود من الأسطر لا يتجاوز العشر أسطر مأخوذه من ملف ترجمه كبير وسوف تلاحظ أن عملية التحويل تتم في عدة ثواني ومن ثم جرب الملف الثاني الذي يحتوي من ما يقارب70 سطر وسوف تلاحظ أن عملية تحويله تأخذ وقتاً طويلاً والملف الثالث والذي هو ملف ترجمة كامل يعلق الجهاز في كل مره أقوم بمحاولة تحويل ملف ترجمة كامل حيث يعلق البرنامج فإستنتاجي هو الكود الطويل جداً وعشرات الجمل الشرطية فيه فيا ريت تجربة البرنامج وبعد ذلك إذا كان لديك أي إقتراحات حول تسريع عمل البرنامج وتقليل الجمل الشرطية من حيث هل دمج جمل مع بعضها يعني جمل شرطية داخل بعض أسرع أو هل إستخدام الكيس أسرع لإنو كما قرأت أنه هناك فرق في السرعه بين إستخدام if وslect case وذلك يعتمد على نوع الفنكشن

يعني البرنامج يقوم بعمله بطريقة جيدة جداً ومرضية لأبعد الحدود ولكن مشكله سرعة التحويل للنصوص الكبيرة التي لا تنجح غالباً او تأخذ وقت ضخم جداً والتي لا أعلم سببها تحديداً كما قلت لك فأي إقتراحات مفيده يا ريت التكرم بها......

ويسعد مساك

#19

معلش نسيت ارفق البرنامج هذا هو

Project_Arabic.rar

#20

وهل تعديل الملف بدون فتحه ووضعه داخل تكست بوكس يسرع العمليه

يعني تحديد فقط مسار الملف وعدم إدراج النص داخل تكست وعند الضغط تحويل يعالج الملف ويضع الناتج بداخل نفس الملف او بملف أخر يحدد كذلك.....

#21

السلام عليكم أخي

آسف لانني تأخرت في الجواب أما بعد

أولا لا حظ معي بعد أن قلت

اقتباس
1-عدد محدود من الأسطر لا يتجاوز العشر أسطر

2-يحتوي من ما يقارب70 سطر

3-هو ملف ترجمة كامل يعلق الجهاز

قلت مباشرة

اقتباس
فإستنتاجي هو الكود الطويل جداً وعشرات الجمل الشرطية فيه

حسب شرحك فالاستنتاج بالضرورة سيكون أن

اقتباس
النص كبير جدا

ما علينا أخي

المشكلة ليست بالضرورة في عدد الجمل الشرطية بقدر ما هي في تكرار الجمل الشرطية

يعني عندنا نص به مليون حرف فسيعيد العمل مليون مرة

هذه من جهة

الجهة الثانية هو هل ستعطي البرنامج لاحد

لانك إذا كنت ستستعمله وحدك فهذا يعني أنك تعرف مكان البرنامج لذلك لماذا لا تكتب مسار الملف

مباشرة في TEXT BOX وسمه فلنقل TXTPATH بدل COMMANDIALOG

أنا لا أقصد التدخل في كيفية عملك آسف

من جهة اخرى

اقتباس
وهل تعديل الملف بدون فتحه

حسن أخي لا أظن أنه يمكنك قول ذلك لانه لا بد من فتحه لانك لن تستطيع معرفة ما به إلا من خلال فتحه

اقتباس
بدون وضعه داخل تكست بوكس

حسن أخي أعتقد انه يمكنك ذلك

وببساطة وضعه في متغير نصي يعني STRING

الشيء التاني هل لا بد من وضع النص المحول في TEXT BOX لانه يمكنك مباشرة كتابه في الملف

والافضل أن تضعه في متغير هو الاخر بدل TEXT BOX تماما مثل Text5 وعندما يكتمل التحويل

بدل

Print #ff, Text5.Text

تكتب

Print #ff, YOUR STRING VARIBAL

استعمل DoEvents بعد هذا

For i = 2 To Len(Text7) - 1

[code]

وسأحاول أنا وحاول أنت أيضا تجربة بعض الامور ونرى إذا كانت تنفع

مثل بدل أن تقرأ النص حرفا حرفا لماذا لا تغير النص من خلال الحروف التي تريد تحويلها

يعني بدل أن تقرأ النص حرفا حرفا وترى إذا كان a تغيره ب b

يعني بدل

For i = 1 To Len(TxtText)

.

If Then

.

If Then

.

Next

استعمل

TxtText = Replace(TxtText, "a", "b")

وهذا بالاضافة إلى أن النص كبير جدا

وحتى الشروط حاول أن تفكر بطريقة أخرى

وسأحاول أنا أيضا وسنجد الحل بإذن الله تعالى

اقتباس
وهل تعديل الملف بدون فتحه ووضعه داخل تكست بوكس يسرع العمليه

يعني تحديد فقط مسار الملف وعدم إدراج النص داخل تكست وعند الضغط تحويل يعالج الملف ويضع الناتج بداخل نفس الملف او بملف أخر يحدد كذلك.....

أعتقد ولو قليلا وهكذا أفضل

سلام

#22

السلام عليكم أخي

كيف الاحوال آمل أنك بخير

حسن إليك هذا التغيير وفي الحقيقة لقد استطعت تغيير الملف الكبير

وأخذ مني تقريبا 22 تانية آمل أن لا يكون هذا كافيا بالنسبة إليك حتى نعمل عليه أكثر

ونجعله أقل وقتا

المهم

لم افعل كثيرا فقط تعاملت بواسطة المتغيرات من الاول وحتى الاخير

ملاحظة بسيطة

بالنسبة للملف الصغير البرنامج الاول يحتاج 2 تانية لتحويله اما البرنامج التاني الذي في المرفق

فهو يحتاج إلى أقل من ثانية

وأنا متأكد أنه مازال بإمكاننا العمل عليه

وآسف للتأخر

وآسف جدا لأنني غيرت في برنامجك أقصد its look

sorry

سلام

The_New_Project_Arabic.rar

#23

السلام عليكم

هل كان البرنامج جيدا إلى ذلك الحد الذي منعك من أن تحبرنا هل يعمل معك جيدا أم لا

سلام

#24

السلام عليكم

هل كان البرنامج جيدا إلى ذلك الحد الذي منعك من أن تحبرنا هل يعمل معك جيدا أم لا

سلام

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…