Насколько ресурсозатратен данный метод работы с .ini? - Visual Basic .NET
Формулировка задачи:
Доброе утро! И, если не свидимся, добрый, день, добрый вечер и доброй ночи.
Итак, была у меня, как у новичка, проблема - как вытащить/запихнуть данные из/в .ini файл. Прошерстил инет, почитал умных людей, проштудировал MSDN и даже скачал готовый класс для работы с файлом (где-то тут на форуме), но то ли потеплело и потому лыжи не едут, то ли... ну вы знаете, в общем так ничего и не заработало. В итоге полез делать класс сам и, о чудо, все работает, не ошибается и умещается в 26 строк кода (для чтения из файла). Проблема только в том, что при каждом обращении за значением файл открывается снова (а происходит это по 33 раза в 5 миллисекунд). Странно тут то, что это ведь скрипт для GTA V, которая и так на 22 FPS у меня идет, но после добавления такого вот решения никакой разницы в производительности замечено не было. Прописывать сходную функцию по записи в файл пока не стал т.к. надо сначала разобраться в чем подвох.
Короче, вот мое решение:
Листинг программы
- Public Class INIUsing
- Public Shared Function FromINI(ByVal InputGrp As String, ByVal InputPar As Object)
- Dim INIFile As StreamReader = New StreamReader(".\Scripts\TiresHealth.ini", Encoding.UTF8)
- Dim INIGrp As String
- Dim INIPar As String
- Dim ParVal As Object
- Do
- INIGrp = INIFile.ReadLine
- If INIGrp <> "" Then
- INIGrp = Strings.Mid(INIGrp, 2, Strings.Len(INIGrp) - 2)
- End If
- Loop Until INIGrp = InputGrp Or INIFile.EndOfStream
- If INIFile.EndOfStream Then
- UI.ShowSubtitle("Group " & InputGrp & " not found in .ini")
- INIFile.Close()
- Return (Nothing)
- End If
- Do
- INIPar = INIFile.ReadLine
- Loop Until InputPar = Strings.Left(INIPar, Strings.Len(InputPar))
- ParVal = Strings.Mid(INIPar, Strings.Len(InputPar) + 2)
- INIFile.Close()
- Return (ParVal)
- End Function
- End Class
Решение задачи: «Насколько ресурсозатратен данный метод работы с .ini?»
textual
Листинг программы
- If WheelsType = WheelsTypeHard Then
- Game.Player.Character.LastVehicle.WheelType = VehicleWheelType.Sport
- ForwardSpending = CSng(FromINI("HardTires", "ForwardSpending"))
- LRSpending = CSng(FromINI("HardTires", "LRSpending"))
- SteeringMod = CSng(FromINI("HardTires", "SteeringMod"))
- RehealthMod = CSng(FromINI("HardTires", "RehealthMod"))
- Game.Player.Character.LastVehicle.EngineTorqueMultiplier = 0.95
- Game.Player.Character.LastVehicle.EnginePowerMultiplier = 0.5
- TiresBehavior.Tire1RBeh()
- TiresBehavior.Tire2LBeh()
- TiresBehavior.Tire3RBeh()
- TiresBehavior.Tire4LBeh()
- If Game.Player.Character.LastVehicle.Acceleration > 0.2 Then
- TiresBehavior.VehAccDec()
- End If
- UI.DrawTexture("./Scripts/TiresHealth/Hard.png", 0, 0, 200, New Point(303, 650), New Size(36, 30), 0, Color.FromArgb(200, 255, 255, 255))
- End If
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д