اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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


إذهب إلى أفضل إجابة Solved by kha9009lid,

الردود الموصى بها

  • أفضل إجابة
33 دقائق مضت, ازهر عبد العزيز said:

احتاج تحويل نص الى رقم كمثال تحويل النص y0372023r0b9g0v5 الى رقم مع ابقاء الارقام ان وجدت

جرب

Dim k As Integer
Dim x As Integer
For k = 1 To Len(tx)
x = Asc(Mid(tx, k))
If x >= 48 And x <= 58 Then
Me.tx2 = tx2 & Mid(tx, k, 1)
End If
Next k

مرفق مثال

 

Database1641.accdb

تم تعديل بواسطه kha9009lid
  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

معذرة اخوي خالد ، بدل ما يستعمل اخوي ازهر كودك ابو 8 اسطر ، انا اقدم له حل ابو سطر واحد فقط ، ويشتغل في الكود والاستعلام :dance1:

Remove_Letters: Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace("y0372023r0b9g0v5", "q", ""), "w", ""), "e", ""), "r", ""), "t", ""), "y", ""), "u", ""), "i", ""), "o", ""), "p", ""), "a", ""), "s", ""), "d", ""), "f", ""), "g", ""), "h", ""), "j", ""), "k", ""), "l", ""), "z", ""), "x", ""), "c", ""), "v", ""), "b", ""), "n", ""), "m", "")

 

جعفر

الحروف على تسلسل لوحة المفاتيح 🙂

  • Like 3
رابط هذا التعليق
شارك

منذ ساعه, jjafferr said:

معذرة اخوي خالد ، بدل ما يستعمل اخوي ازهر كودك ابو 8 اسطر ، انا اقدم له حل ابو سطر واحد فقط ، ويشتغل في الكود والاستعلام 

يامرحبا ترحيبة كلها لك

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

سوف يعمل ببطء شديد وكل ماكانت السجلات اكثر يكون اكثر بطء

ثانيا انت استخدمت دالة الاستبدال بعدد احرف الهجائية الانجليزية وبالتالي عدد احرف الكود لديك اكبر ههههههه :wavetowel:

ثالثا لو كان الحقول مختلطة باحرف ورموز كودك استاذنا لن يعمل حتى تقوم باضافة هذه الرموز

رابعا لو كانت بعض الحقول تحتوي على احرف عربية ايضا لن يعمل وسيكون لدينا حمسين Replace

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

Public Function ExNum(sInput) As String
Dim s As String, w As String
Dim k As Integer
If Not IsNull(sInput) Then
For k = 1 To Len(sInput)
w = Mid(sInput, k, 1)
Select Case w
Case "0" To "9"
s = s & w
Case Else
End Select
Next k
End If
ExNum = s
End Function

وللاستدعاء

exnum([tx])

وكل عام وانت بخير

ابدال.PNG

تم تعديل بواسطه kha9009lid
  • Like 4
رابط هذا التعليق
شارك

16 دقائق مضت, ازهر عبد العزيز said:

بخصوص كود الاستاذ جعفر  جزاه الله عني كل خير

ليس عنك فقط اخي ازهر

بل جزاه الله عنا جميعا كل خير

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

هذا ردي على استاذي ابو عبد الله في موضوع سابق 👇

اقتباس

   في ٥‏/٤‏/٢٠٢١ at 16:38, kha9009lid said:

    انا في حالات كثير اتعمد المداخله في ردودك لغرض معرفة البدائل التي لديكم استاذي العزيز

 

  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

هذا الموضوع يذكرني في مشاركة لي في منتدى اجنبي:

صاحب الموضوع وضع شرح طويل عن مشكلته ، وقامت خبيرة بالرد على سؤاله بسطر واحد ،

وعلى سبيل المزاح قلت لها:

حرام ان صاحب الموضوع يكتب هذا الكم من الكلمات ويحصل على اجابة سطر واحد !!

ثم وضعت كود بعدة اسطر (ولم يكن افضل من كود السطر) وقلت لصاحب الموضوع لا تزعل وتفضل اجابة بكود اطول 🙂

والذي استغربت منه هو ، ان صاحب الموضوع قام بإختيار طريقتي كأفضل حل !!

ولما قلت له اني كنت امزح في وضع الحل ، وان الحل الافضل هو كود السطر الواحد ، رد عليّ قائلا: يتم الدفع لي على البرمجة بعدد الاسطر التي اكتبها 😬


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

 

اخوي ازهر ، عدد الاسطر الحقيقية لهذا الكود هي:

R = Replace( _
     Replace( _
      Replace( _
       Replace( _
        Replace( _
         Replace( _
          Replace( _
           Replace( _
            Replace( _
             Replace( _
              Replace( _
               Replace( _
                Replace( _
                 Replace( _
                  Replace( _
                   Replace( _
                    Replace( _
                     Replace( _
                      Replace( _
                       Replace( _
                        Replace( _
                         Replace( _
                          Replace( _
                           Replace( _
                            Replace( _
                            Replace("y0372023r0b9g0v5", "q", ""), "w", ""), "e", ""), "r", ""), "t", ""), "y", ""), "u", ""), "i", ""), "o", ""), "p", ""), "a", ""), "s", ""), "d", ""), "f", ""), "g", ""), "h", ""), "j", ""), "k", ""), "l", ""), "z", ""), "x", ""), "c", ""), "v", ""), "b", ""), "n", ""), "m", "")

 

وعلشان يكون الكود اوضح للفهم والقراءة ، فيصبح:

R = Replace( _
     Replace( _
      Replace( _
       Replace( _
        Replace( _
         Replace( _
          Replace( _
           Replace( _
            Replace( _
             Replace( _
              Replace( _
               Replace( _
                Replace( _
                 Replace( _
                  Replace( _
                   Replace( _
                    Replace( _
                     Replace( _
                      Replace( _
                       Replace( _
                        Replace( _
                         Replace( _
                          Replace( _
                           Replace( _
                            Replace( _
                            Replace("y0372023r0b9g0v5", "q", "") _
						      , "w", "") _
						      , "e", "") _
						      , "r", "") _
						      , "t", "") _
						      , "y", "") _
						      , "u", "") _
						      , "i", "") _
						      , "o", "") _
						      , "p", "") _
						      , "a", "") _
						      , "s", "") _
						      , "d", "") _
						      , "f", "") _
						      , "g", "") _
						      , "h", "") _
						      , "j", "") _
						      , "k", "") _
						      , "l", "") _
						      , "z", "") _
						      , "x", "") _
						      , "c", "") _
						      , "v", "") _
						      , "b", "") _
						      , "n", "") _
						      , "m", "")

 

جعفر

  • Like 1
  • Thanks 1
  • Haha 1
رابط هذا التعليق
شارك

  • 1 year later...

بما أن الأستاذ خالد قام بإحياء هذا الموضوع من جديد أحببت أن أدلو بدلوي 😁

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

أولا : استخراج الأرقام من النص وحذف الحروف :

Public Function ExtractNumbersFromText(strText As String)
Dim x As Long
Dim L As String
Dim r As String

For x = 1 To Len(strText)

    L = Mid(strText, x, 1)
    If IsNumeric(L) Then
    r = r & L
    End If
Next x
ExtractNumbersFromText = r
End Function

ثانيا : اسخراج الحروف وحذف الأرقام :

Public Function RemoveNumbersFromText(strText As String)
Dim x As Long
Dim L As String
Dim r As String

For x = 1 To Len(strText)

    L = Mid(strText, x, 1)
    If Not IsNumeric(L) Then
    r = r & L
    End If
Next x
RemoveNumbersFromText = r
End Function

1657956819199.png

abc.rar

  • Like 1
رابط هذا التعليق
شارك

18 دقائق مضت, Moosak said:

خالد قام بإحياء هذا الموضوع من جديد

الله سبحانه من يحيي ويميت

وَضَرَبَ لَنَا مَثَلًا وَنَسِيَ خَلْقَهُ قَالَ مَن يُحْيِي الْعِظَامَ وَهِيَ رَمِيمٌ * قُلْ يُحْيِيهَا الَّذِي أَنشَأَهَا أَوَّلَ مَرَّةٍ وَهُوَ بِكُلِّ خَلْقٍ عَلِيمٌ

كان مجرد رد خاطئ في مكان ووقت غير مناسب وعدلته

تحياتي

رابط هذا التعليق
شارك

4 دقائق مضت, Moosak said:

هذا الاسم يليق بك أكثر

شكرا لمشاعرك الطيبة مع ذلك هذه الالقاب ليست ذات اهميه بالنسبة لي

هذا ⬇️ اقتباس لجزء من رسالتي لاحد الكبار في الموقع

في 15‏/8‏/2022 at 20:08, kha90lid said:

ولكني اتمنى من اخي الحبيب اعادة رتبتي الى ما كانت عليه وفق الترتيب التلقائي

فانا كما اشرت في اول مشاركة مجرد عضو يشارك وفقا لما يتسع له وقته واتمنى بدايه جديدة بغض النظر عن اسمي الحقيقي فلا مشكلة من الاشارة اليه

رابط هذا التعليق
شارك

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

واحتسب الأجر عند الله ..

تم تعديل بواسطه Moosak
رابط هذا التعليق
شارك

أكثر ما أكرهه في البرمجة هو تكديس الأكواد للوصول إلى أقصر كود.
من الحالات التي مرت علي أذكر منها حالتين:
الأولى صاحبها يستخدم الفاصلة بين الأسطر ":" ولا يستخدم أسطر فارغة بين الدوال ليخرج ويعلن أن كوده هو الأفضل لأنه الأقصر!!
والأخرى صاحبها يستخدم نتائج بعد تحضيرها منفصلة خارج الكود الأصل ، ثم يستخدمها كثوابت ويستخدم أسطر بيانات تصل طول السطر فيها إلى ما يقارب الألف حرف ليعلن أن كوده هو الأقصر والأسرع.

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

حركتوا مشاعري المدفونة.

  • Like 1
رابط هذا التعليق
شارك

في 16‏/5‏/2021 at 18:12, kha9009lid said:
If x >= 48 And x <= 58 Then

 

في 23‏/8‏/2022 at 19:41, Moosak said:
If IsNumeric(L) Then

 

 

في 16‏/5‏/2021 at 23:50, kha9009lid said:
Case "0" To "9"

 

وهذه أيضا من عندي:

If L Like "[0-9]" Then
أو
If L Like "[0123456789]" Then

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information