Check In tool source code based on Build tool project revision r1655.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8964 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
75
BaseTools/Source/Python/Common/Dictionary.py
Normal file
75
BaseTools/Source/Python/Common/Dictionary.py
Normal file
@ -0,0 +1,75 @@
|
||||
## @file
|
||||
# Define a dictionary structure
|
||||
#
|
||||
# Copyright (c) 2007, Intel Corporation
|
||||
# All rights reserved. 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
|
Reference in New Issue
Block a user