فرز قاموس برمجة ملؤها بالبيانات سلسلة

ملخص

كائن "البرمجة النصية القاموس" هو المكافئ لمجموعة PERL النقابي، حيث يتم تخزين المعلومات في مصفوفة تتكون من مفاتيح فريدة وبيانات العنصر. لأنه يتم تخزين هذه المعلومات التي لم يتم فرزها، تعداد خلال الصفيف بإرجاع معلومات بالترتيب الذي تم تخزينه. الغرض من هذه المادة هو تعريف الدالة SortDictionary() فرز محتويات كائن قاموس ملؤها بسلسلة البيانات بمفتاح أو عنصر.

مزيد من المعلومات

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

Const dictKey  = 1Const dictItem = 2

Function SortDictionary(objDict,intSort)
' declare our variables
Dim strDict()
Dim objKey
Dim strKey,strItem
Dim X,Y,Z

' get the dictionary count
Z = objDict.Count

' we need more than one item to warrant sorting
If Z > 1 Then
' create an array to store dictionary information
ReDim strDict(Z,2)
X = 0
' populate the string array
For Each objKey In objDict
strDict(X,dictKey) = CStr(objKey)
strDict(X,dictItem) = CStr(objDict(objKey))
X = X + 1
Next

' perform a a shell sort of the string array
For X = 0 to (Z - 2)
For Y = X to (Z - 1)
If StrComp(strDict(X,intSort),strDict(Y,intSort),vbTextCompare) > 0 Then
strKey = strDict(X,dictKey)
strItem = strDict(X,dictItem)
strDict(X,dictKey) = strDict(Y,dictKey)
strDict(X,dictItem) = strDict(Y,dictItem)
strDict(Y,dictKey) = strKey
strDict(Y,dictItem) = strItem
End If
Next
Next

' erase the contents of the dictionary object
objDict.RemoveAll

' repopulate the dictionary with the sorted information
For X = 0 to (Z - 1)
objDict.Add strDict(X,dictKey), strDict(X,dictItem)
Next

End If

End Function

A يعمل المثال

المثال التالي يستخدم الدالة أعلاه.

ملاحظة: تمت إزالة كافة التعليقات من وظيفة الفرز الفعلي في هذا المثال.


نسخ التعليمة البرمجية التالية في آسيا والمحيط الهادئ وحفظه إلى مجلد باسم Sortdemo.asp بالاقل البرامج النصية الوصول:
<%@LANGUAGE="VBSCRIPT"%><% Option Explicit %>
<html>
<head><title>Dictionary Sorting</title></head>
<body>
<%

Dim d, i

Const dictKey = 1
Const dictItem = 2

Set d = Server.CreateObject("Scripting.Dictionary")

d.Add "3", "Delta"
d.Add "1", "Foxtrot"
d.Add "4", "Bravo"
d.Add "2", "Echo"
d.Add "6", "Alpha"
d.Add "5", "Charlie"

Response.Write "<p>Before Sorting:<br>"
For Each i In d
Response.Write i & "=" & d(i) & "<br>"
Next

Response.Write "<p>By Key:<br>"
SortDictionary d,dictKey
For Each i In d
Response.Write i & "=" & d(i) & "<br>"
Next

Response.Write "<p>By Item:<br>"
SortDictionary d,dictItem
For Each i In d
Response.Write d(i) & "=" & i & "<br>"
Next
%>
</body>
</html>
<%
Function SortDictionary(objDict,intSort)
Dim strDict()
Dim objKey
Dim strKey,strItem
Dim X,Y,Z
Z = objDict.Count
If Z > 1 Then
ReDim strDict(Z,2)
X = 0
For Each objKey In objDict
strDict(X,dictKey) = CStr(objKey)
strDict(X,dictItem) = CStr(objDict(objKey))
X = X + 1
Next
For X = 0 to (Z - 2)
For Y = X to (Z - 1)
If StrComp(strDict(X,intSort),strDict(Y,intSort),vbTextCompare) > 0 Then
strKey = strDict(X,dictKey)
strItem = strDict(X,dictItem)
strDict(X,dictKey) = strDict(Y,dictKey)
strDict(X,dictItem) = strDict(Y,dictItem)
strDict(Y,dictKey) = strKey
strDict(Y,dictItem) = strItem
End If
Next
Next
objDict.RemoveAll
For X = 0 to (Z - 1)
objDict.Add strDict(X,dictKey), strDict(X,dictItem)
Next
End If
End Function
%>

عند استعراض، يجب عرض الإخراج التالي:
Before Sorting:3=Delta
1=Foxtrot
4=Bravo
2=Echo
6=Alpha
5=Charlie

By Key:
1=Foxtrot
2=Echo
3=Delta
4=Bravo
5=Charlie
6=Alpha

By Item:
Alpha=6
Bravo=4
Charlie=5
Delta=3
Echo=2
Foxtrot=1


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

لمزيد من المعلومات حول خيارات الدعم المتوفرة وحول كيفية الاتصال بشركة Microsoft، قم بزيارة موقع Microsoft التالي على الويب:

المراجع

لمزيد من المعلومات حول تقنيات البرمجة النصية ل Microsoft، راجع موقع Microsoft Developer Network على ويب على العنوان التالي:
خصائص

رقم الموضوع: 246067 - آخر مراجعة: 08‏/01‏/2017 - المراجعة: 1

تعليقات