Пример #1
0
def main():

    blockZero = []

    blockOne = []

    blockTwo = []

    blockThree = []

    blockFour = []

    blockFive = []

    blockSix = []

    blockSeven = []

    blockEight = []

    blockNine = []

    listZero = []

    listOne = []

    listTwo = []

    listThree = []

    listFour = []

    listFive = []

    listSix = []

    listSeven = []

    listEight = []

    listNine = []

    overflowBuffZero = []

    overflowBuffOne = []

    overflowBuffTwo = []

    overflowBuffThree = []

    overflowBuffFour = []

    overflowBuffFive = []

    overflowBuffSix = []

    overflowBuffSeven = []

    overflowBuffEight = []

    overflowBuffNine = []

    blockLen = 5

    #blockExample = [listExample, OverflowBuffExample]

    listBlocks = [
        blockZero, blockOne, blockTwo, blockThree, blockFour, blockFive,
        blockSix, blockSeven, blockEight, blockNine
    ]

    listLists = [
        listZero, listOne, listTwo, listThree, listFour, listFive, listSix,
        listSeven, listEight, listNine
    ]

    listOverflowBuff = [
        overflowBuffZero, overflowBuffOne, overflowBuffTwo, overflowBuffThree,
        overflowBuffFour, overflowBuffFive, overflowBuffSix, overflowBuffSeven,
        overflowBuffEight, overflowBuffNine
    ]

    for i in range(len(listBlocks)):

        listBlocks[i].append(listLists[i])

        listBlocks[i].append(listOverflowBuff[i])

        for j in range(blockLen):

            listLists[i].append(None)

    #print(listBlocks)

    infile = "directCar.txt"

    outfile = "carparkMod.txt"

    counter = 0

    with open(infile, "r+") as f:

        for row in f:

            counter += 1

    with open(infile, "r+") as f:

        for row in f:

            for i in range(len(listBlocks)):

                for j in range(counter):

                    if j < 5:

                        if row[3] == str(i) and listLists[i][j] is None:

                            listLists[i][j] = row

                            break

                    if row[3] == str(
                            i) and listLists[i][4] is not None and j >= 5:

                        listOverflowBuff[i].append(row)

                        break

    f.close()

    menu()

    choice = (input("Your choice:"))

    print("\n")

    if choice == "1":
        '''Input data '''

        if not os.path.exists(infile):

            carstore = open(infile, "w+")

        else:

            carstore = open(infile, "a")

        carInCarPark = Car.carInput(infile)

        getCarId = str(carInCarPark.getCarID())

        for i in range(len(listBlocks)):

            for j in range(len(listLists[i])):

                if getCarId[-1] == str(i) and listLists[i][j] == None:

                    listLists[i][j] = str(carInCarPark)

                    carstore.write(str(listLists[i][j]))

                    break

                elif getCarId[-1] == str(i) and listLists[i][4] != None:

                    listOverflowBuff[i].append(str(carInCarPark))

                    carstore.write(str(listOverflowBuff[i][-1]))

                    break

        carstore.close()

        print("\n")

        lines = readInList(infile)

        lines.sort()

        reWrite(infile, outfile, lines)

        main()

    elif choice == "2":
        '''Search specific data '''

        result = 0

        carIdSearch = input('Enter the ID : ')

        blockId = int(carIdSearch[3])

        for i in range(len(listLists[blockId])):

            if carIdSearch in listLists[blockId][i]:

                print(listLists[blockId][i])

                result = 1

                break

        for i in range(len(listOverflowBuff[blockId])):

            if carIdSearch in listOverflowBuff[blockId][i]:

                print(listOverflowBuff[blockId][i])

                result = 1

                break

        if result == 0:

            print("No match found.")

        main()

    elif choice == "3":
        '''Read all data'''

        for i in range(len(listBlocks)):

            print("Block #", i, "\n")

            for j in range(blockLen):

                if listLists[i][j] != None:

                    print(listLists[i][j])

            if listOverflowBuff != []:

                for j in range(len(listOverflowBuff[i])):

                    print("Overflow buffer #{}: {}".format(
                        i, listOverflowBuff[i][j]))

            print("=================")

        print("\n")

        lines = readInList(infile)

        lines.sort()

        reWrite(infile, outfile, lines)

        main()

    elif choice == "4":
        ''' Modify data '''

        carIdSearch = input('Enter the ID : ')

        blockId = int(carIdSearch[3])

        modlist = []

        lines = []

        result = 0

        for i in range(len(listLists[blockId])):

            if carIdSearch in listLists[blockId][i]:

                print(listLists[blockId][i])

                oldField = input("Field to modify: ")

                newField = input("New data: ")

                listLists[blockId][i] = listLists[blockId][i].replace(
                    oldField, newField)

                result = 1

                break

        for i in range(len(listOverflowBuff[blockId])):

            if carIdSearch in listOverflowBuff[blockId][i]:

                print(listOverflowBuff[blockId][i])

                oldField = input("Field to modify: ")

                newField = input("New data: ")

                listOverflowBuff[blockId][i] = listOverflowBuff[blockId][
                    i].replace(oldField, newField)

                result = 1

                break

        if result == 0:

            print("No match found.")

        elif result == 1:

            with open(infile, "w+") as f1:

                for i in range(len(listBlocks)):

                    for j in range(blockLen):

                        if listLists[i][j] is not None:

                            f1.write(str(listLists[i][j]))

                    for k in range(len(listOverflowBuff[i])):

                        f1.write(str(listOverflowBuff[i][k]))

            f1.close()

        reWrite(infile, outfile, lines)

        main()

    elif choice == "5":
        ''' Delete data '''

        carIdSearch = input('Enter the ID : ')

        blockId = int(carIdSearch[3])

        modlist = []

        lines = []

        result = 0
        '''Checking if car is in main buffer'''

        for i in range(len(listLists[blockId])):

            if carIdSearch in listLists[blockId][i]:

                print(listLists[blockId][i])

                deleteDesicion = input(
                    "Do you want to delete the record? Y/N: ")

                if deleteDesicion == 'y' or deleteDesicion == 'Y':

                    listLists[blockId][i] = None

                    if listOverflowBuff[i] != []:

                        listLists[blockId][i] = listOverflowBuff[i][0]

                        listOverflowBuff[i].pop(0)

                        break

                    result = 1

                    break

                elif deleteDesicion == 'n' or deleteDesicion == 'N':

                    main()

                else:

                    print("Wrong button pressed. Returning to main menu.")

                    main()
        '''Checking if car is in overflow buffer'''

        for i in range(len(listOverflowBuff[blockId])):

            if carIdSearch in listOverflowBuff[blockId][i]:

                print(listOverflowBuff[blockId][i])

                deleteDesicion = input(
                    "Do you want to delete the record? Y/N: ")

                if deleteDesicion == 'y' or deleteDesicion == 'Y':

                    listOverflowBuff[i].pop(i)

                    result = 1

                    break

                elif deleteDesicion == 'n' or deleteDesicion == 'N':

                    main()

                else:

                    print("Wrong button pressed. Returning to main menu.")

                    main()

        if result == 0:

            print("No match found.")

        elif result == 1:

            with open(infile, "w+") as f1:

                for i in range(len(listBlocks)):

                    for j in range(blockLen):

                        if listLists[i][j] is not None:

                            f1.write(str(listLists[i][j]))

                    for k in range(len(listOverflowBuff[i])):

                        f1.write(str(listOverflowBuff[i][k]))

            f1.close()

        listBlocks = None

        main()

    elif choice == "6":
        ''' Exit '''

        print("Bye!")

        exit()

    elif choice == "0":

        print("Programming God's mode is not implemented yet.")

        main()

    else:

        print("Wrong button pressed.")

        main()
Пример #2
0
def main():

    menu()

    choice = input("Your choice:")

    print("\n")

    if choice == "1":
        '''Input data '''

        nfile = "carpark.txt"

        if not os.path.exists("carParkSort.txt"):

            carstore = open("carParkSort.txt", "w+")

        else:

            carstore = open("carParkSort.txt", "a")

        carInCarPark = Car.carInput(infile)

        carstore.write(str(carInCarPark))

        carstore.close()

        infile = "carParkSort.txt"

        outfile = "carparkMod.txt"

        lines = readInList(infile)

        lines.sort()

        reWrite(infile, outfile, lines)

        print("\n")

        main()

    elif choice == "2":
        '''Search specific data '''

        carIdSearch = input('Enter the search parameter: ')
        #carParam = input('Enter the parameter: ')

        lines = []

        with open('carParkSort.txt') as f:

            for row in f:

                lines.append(row)

            for line in lines:

                if carIdSearch in line:
                    print(line)

        main()

    elif choice == "3":
        '''See all data '''

        infile = "carParkSort.txt"

        outfile = "carparkMod.txt"

        lines = readInList(infile)

        lines.sort()

        with open(outfile, "w") as f1:

            with open(infile, "r+") as f:

                for line in lines:

                    f1.write(line)

            f1.close()

        f.close()

        os.rename(outfile, infile)

        carstore = open("carParkSort.txt", "r")

        carstore_display = carstore.read()

        print(carstore_display)

        print("\n")

        main()

    elif choice == "4":
        ''' Modify data '''

        carIdSearch = input('Enter the ID : ')

        modlist = []

        infile = "carParkSort.txt"

        outfile = "carparkMod.txt"

        sortId = idSearch(infile)

        lines = readInList(infile)

        lines.sort()

        with open(outfile, "w") as f1:

            with open(infile, "r+") as f:

                for line in lines:

                    if carIdSearch in line and carIdSearch in sortId:

                        print(line)

                        modlist.append(input("Field to modify: "))

                        newfield = input("New data: ")

                    for word in modlist:

                        line = line.replace(word, newfield)

                    f1.write(line)

                f1.close()

            f.close()

        os.rename(outfile, infile)

        main()

    elif choice == "5":
        ''' Delete data '''

        infile = "carParkSort.txt"

        outfile = "carparkMod.txt"

        carIdSearch = input('Enter the ID : ')

        sortId = idSearch(infile)

        lines = readInList(infile)

        lines.sort()

        for line in range(len(lines)):

            if carIdSearch in lines[line] and carIdSearch in sortId[line]:

                print(lines[line])

                deleteDesicion = input(
                    "Do you want to delete the record? Y/N: ")

                if deleteDesicion == 'y' or deleteDesicion == 'Y':

                    lines.remove(lines[line])

                    sortId.remove(sortId[line])

                    reWrite(infile, outfile, lines)

                    reWrite("idList.txt", "idListMod.txt", sortId)

                    print("\nDone.\n ")

                    main()

                elif deleteDesicion == 'n' or deleteDesicion == 'N':

                    main()

                else:

                    print("Wrong button pressed. Returning to main menu.")

                    main()

    elif choice == "6":
        ''' Exit '''

        print("Bye!")

        exit()

    else:

        print("Wrong button pressed.")

        main()