Насколько ресурсозатратен данный метод работы с .ini? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Доброе утро! И, если не свидимся, добрый, день, добрый вечер и доброй ночи. Итак, была у меня, как у новичка, проблема - как вытащить/запихнуть данные из/в .ini файл. Прошерстил инет, почитал умных людей, проштудировал MSDN и даже скачал готовый класс для работы с файлом (где-то тут на форуме), но то ли потеплело и потому лыжи не едут, то ли... ну вы знаете, в общем так ничего и не заработало. В итоге полез делать класс сам и, о чудо, все работает, не ошибается и умещается в 26 строк кода (для чтения из файла). Проблема только в том, что при каждом обращении за значением файл открывается снова (а происходит это по 33 раза в 5 миллисекунд). Странно тут то, что это ведь скрипт для GTA V, которая и так на 22 FPS у меня идет, но после добавления такого вот решения никакой разницы в производительности замечено не было. Прописывать сходную функцию по записи в файл пока не стал т.к. надо сначала разобраться в чем подвох. Короче, вот мое решение:
Листинг программы
  1. Public Class INIUsing
  2. Public Shared Function FromINI(ByVal InputGrp As String, ByVal InputPar As Object)
  3. Dim INIFile As StreamReader = New StreamReader(".\Scripts\TiresHealth.ini", Encoding.UTF8)
  4. Dim INIGrp As String
  5. Dim INIPar As String
  6. Dim ParVal As Object
  7. Do
  8. INIGrp = INIFile.ReadLine
  9. If INIGrp <> "" Then
  10. INIGrp = Strings.Mid(INIGrp, 2, Strings.Len(INIGrp) - 2)
  11. End If
  12. Loop Until INIGrp = InputGrp Or INIFile.EndOfStream
  13. If INIFile.EndOfStream Then
  14. UI.ShowSubtitle("Group " & InputGrp & " not found in .ini")
  15. INIFile.Close()
  16. Return (Nothing)
  17. End If
  18. Do
  19. INIPar = INIFile.ReadLine
  20. Loop Until InputPar = Strings.Left(INIPar, Strings.Len(InputPar))
  21. ParVal = Strings.Mid(INIPar, Strings.Len(InputPar) + 2)
  22. INIFile.Close()
  23. Return (ParVal)
  24. End Function
  25. End Class

Решение задачи: «Насколько ресурсозатратен данный метод работы с .ini?»

textual
Листинг программы
  1.             If WheelsType = WheelsTypeHard Then
  2.                 Game.Player.Character.LastVehicle.WheelType = VehicleWheelType.Sport
  3.                 ForwardSpending = CSng(FromINI("HardTires", "ForwardSpending"))
  4.                 LRSpending = CSng(FromINI("HardTires", "LRSpending"))
  5.                 SteeringMod = CSng(FromINI("HardTires", "SteeringMod"))
  6.                 RehealthMod = CSng(FromINI("HardTires", "RehealthMod"))
  7.                 Game.Player.Character.LastVehicle.EngineTorqueMultiplier = 0.95
  8.                 Game.Player.Character.LastVehicle.EnginePowerMultiplier = 0.5
  9.                 TiresBehavior.Tire1RBeh()
  10.                 TiresBehavior.Tire2LBeh()
  11.                 TiresBehavior.Tire3RBeh()
  12.                 TiresBehavior.Tire4LBeh()
  13.                 If Game.Player.Character.LastVehicle.Acceleration > 0.2 Then
  14.                     TiresBehavior.VehAccDec()
  15.                 End If
  16.                 UI.DrawTexture("./Scripts/TiresHealth/Hard.png", 0, 0, 200, New Point(303, 650), New Size(36, 30), 0, Color.FromArgb(200, 255, 255, 255))
  17.             End If

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы