diff options
author | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-04-14 04:58:20 +0000 |
---|---|---|
committer | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2011-04-14 04:58:20 +0000 |
commit | cbcd4e12dc30e1f1d41b6e46fbcbd984bcd97caf (patch) | |
tree | 307d5981f030e84a5c5bd90f7c609392eb2079c9 /BaseTools/Source/Python/Common/Dictionary.py | |
parent | ae4d173a80118151d2d15b4a8efda7e7be07b6dd (diff) | |
download | edk2-cbcd4e12dc30e1f1d41b6e46fbcbd984bcd97caf.tar.gz |
Sync EDKII trunk BaseTools r11314 to UDK2010 Branch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/branches/UDK2010@11542 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'BaseTools/Source/Python/Common/Dictionary.py')
-rw-r--r-- | BaseTools/Source/Python/Common/Dictionary.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/BaseTools/Source/Python/Common/Dictionary.py b/BaseTools/Source/Python/Common/Dictionary.py new file mode 100644 index 0000000000..de3556b892 --- /dev/null +++ b/BaseTools/Source/Python/Common/Dictionary.py @@ -0,0 +1,75 @@ +## @file
+# Define a dictionary structure
+#
+# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+
+##
+# Import Modules
+#
+import EdkLogger
+from DataType import *
+
+## Convert a text file to a dictionary
+#
+# Convert a text file to a dictionary of (name:value) pairs.
+#
+# @retval 0 Convert successful
+# @retval 1 Open file failed
+#
+def ConvertTextFileToDictionary(FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
+ try:
+ F = open(FileName,'r')
+ Keys = []
+ for Line in F:
+ if Line.startswith(CommentCharacter):
+ continue
+ LineList = Line.split(KeySplitCharacter,1)
+ if len(LineList) >= 2:
+ Key = LineList[0].split()
+ if len(Key) == 1 and Key[0][0] != CommentCharacter and Key[0] not in Keys:
+ if ValueSplitFlag:
+ Dictionary[Key[0]] = LineList[1].replace('\\','/').split(ValueSplitCharacter)
+ else:
+ Dictionary[Key[0]] = LineList[1].strip().replace('\\','/')
+ Keys += [Key[0]]
+ F.close()
+ return 0
+ except:
+ EdkLogger.info('Open file failed')
+ return 1
+
+## Print the dictionary
+#
+# Print all items of dictionary one by one
+#
+# @param Dict: The dictionary to be printed
+#
+def printDict(Dict):
+ if Dict != None:
+ KeyList = Dict.keys()
+ for Key in KeyList:
+ if Dict[Key] != '':
+ print Key + ' = ' + str(Dict[Key])
+
+## Print the dictionary
+#
+# Print the items of dictionary which matched with input key
+#
+# @param list: The dictionary to be printed
+# @param key: The key of the item to be printed
+#
+def printList(Key, List):
+ if type(List) == type([]):
+ if len(List) > 0:
+ if Key.find(TAB_SPLIT) != -1:
+ print "\n" + Key
+ for Item in List:
+ print Item
|