오래된 VB 코드를 다시 작성해야합니다. 나는 그것이 어떻게 작동하는지 이해하지만, 그들이 한 일을하는 훨씬 효율적인 방법이 있다고 생각합니다. 나는 그것이 무엇인지 알 수 없습니다. 다음은 데이터 요구 사항과 관련하여 실제로 내가 해야하는 것과 비슷한 것으로 고안된 예입니다.
사용자는 GUI에서 자동차 제조업체, 제조사, 모델 및 색상을 선택해야합니다. 다음과 같은 큰 텍스트 파일이 있습니다.
Ford Truck F150 red
Ford Truck F150 blue
Ford Truck F150 black
Ford Truck F150 silver
Ford Truck F250 red
Ford Truck F250 green
Ford Sedan Taurus red
Ford Sedan Taurus green
Ford Sedan Taurus white
Ford...
...
Subaru SUV Forester blue
Subaru SUV Forester red
Subaru SUV Outback Black
Subaru SUV Outback Green
Subaru SUV Outback Blue
Subaru SUV Outback Red
Subaru...
...
etc.
따라서 첫 번째 선택이 스바루 인 경우 두 번째 상자 (만들기) 에는 스바루가 트럭 이 아니므로 트럭을 선택할 수있는 옵션이 없어야합니다 . 마찬가지로 Ford, Sedan 및 Taurus를 선택하면 마지막 상자 (색상)에 파란색을 선택할 수있는 옵션이 표시 되지 않습니다 . 아니면 블랙 또는 빨강, 녹색 또는 흰색 이외의 것.
내가 코드를 작성한 사람들은 이것을 파이썬 (python-y psuedocode)으로 생각해 냈습니다.
def getValidOptions():
items = []
for i from 0 to numRows:
options = getLine().split()
if selectingManufacturer:
if options[0] not in items:
items.append(options[0])
else if selectingMake:
if selectedManufacturer == options[0] and options[1] not in items:
items.append(options[1])
else if selectingModel:
if selectedManufacturer == options[0] and selectedMake == options[1] and options[2] not in items:
items.append(options[2])
else if selectingColor:
if selectedManufacturer == options[0] and selectedMake == options[1] and selectedModel == options[2] and options[3] not in items:
items.append(options[3])
return items
나는 그것이 알고리즘 수준과 구문 수준 모두에서 끔찍하다고 생각합니다. 하나, 그것은 제대로 수행하면 몇 줄을 통해 읽을 필요가있을 때 전체 파일을 통해 구문 분석합니다. 이를 더욱 비효율적으로 만들기 위해 실제 데이터에는 4 개가 아닌 6 가지 옵션 중에서 선택할 수 있습니다. 이는 데이터 복제 량을 고려하여 필요한 것보다 많은 데이터를 저장하는 것입니다.
파일에 데이터를 저장하는 다른 방법이나 getValidOptions
함수를보다 예쁘고 효율적 으로 만들기 위해 파싱하는 다른 방법을 찾고 있습니다. 내가 할 수있는 방법이 있습니까?