Вот у меня есть в игре такие веши как количество побед скоко денег порожений имя игрока имя его робота! Аснастка робота!
Так вот вопрос как осушествить регистрацию новых играков
И сохранения их статистик паролей Имён и всего выше перчисленого в фаил с его именем для каждого пользователя свой! А потом и его загрузку в игру!
можно в ини(*.ini)(с ини на сайте есть примеры, пошщи, с ини на много удобнее сам так делал! ) всё запихнуть или в текстовый файл. Это всё пр нажатии сохранение. А вот тебе код из учебника Падре
Запись в *.ini файл.
Как всегда сделаем программу, на форму кинь текст. поле, кнопку(Caption = "Запись", вот код:
' Объявляем API
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Sub Command1_Click()
Dim Left As String, Top As String, Text As String
' Устанавливаем значение переменных
Left = Form1.Left
Top = Form1.Top
Text = Text1.Text
WritePrivateProfileString "Setup", "Left", Left, App.Path & "/set.ini" ' Записываем в раздел Setup в переменную Left значение переменной Left(Form1.Left), и все это записываем в файл set.ini(при помощи App.Path узнаем путь к программе), если этого файла нет то он создается.
WritePrivateProfileString "Setup", "Top", Top, App.Path & "/set.ini" ' Записываем значение переменной Top
WritePrivateProfileString "Text", "Text1", Text, App.Path & "/set.ini" ' Записываем текст, который находится в текстовом поле(в переменной Text)
End Sub
Чтение из *.ini файлов
Для чтения файлов есть API GetPrivateProfileString, ща мы сделаем программу, которая при загрузке перемещает форму на то значение, которое указанно в файле set.ini, в разделе Setup, переменной Left. Код:
'Объявляем API для чтения
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Sub Form_Load()
Dim Htenie
Dim z As String
z = Space(255) ' Выделяем место в памяти из 255 пробелов(можно написать так z="255 раз нажми на пробел(хотя можно и меньше(я вписал 255 т.к. это 1 строчка))", для записи(см. ниже) значения читаемой переменной
Htenie = GetPrivateProfileString("Setup", "Left", "no", z, 255, App.Path & "/set.ini" ' Считываем из ключа Setup, значение переменной Left. Я написал слово "no"можно вписать любое), это слово нам потом пригодится(если ключа/переменной нет, то z будет равно слову no).
z = Left(z, Htenie) ' убираем все ненужные символы с правой стороны у строки, чтобы получить настоящее значение.
If z = "no" Then
MsgBox "Такого раздела/переменной не существует" ' Если ключа/переменной нет, то сообщем об этом
Else
Form1.Left = val(z) ' Ставим форму на то место, которое указано в файле ini. (в разделе Setup переменной Left)
End If
End Sub
Успехов в работе и удачи!
А я ещё раз извиняюсь перед формулянями! (см."Помогите не опозориться" (Простите-е-е-е!!!)
[PlayerИгрок 1]
Name=Игрок 1
Name bot=Робот1
Money=0
Wins=pµ)@AA
Defit=0
________________________________________________
"pµ)@AA" вместо етого должен быть 0
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Private Sub Command1_Click()
Dim Name As String, Bot As String, Fin As String, Winsss As String, def As String
Name = NameP.Caption
Bot = NameBot.Caption
Fin = Money.Caption
Winsss = Wins.Caption
def = Defite.Caption
Option Explicit пишется в начале модуля (формы или общего модуля).
При этом переменные надо будет объявлять явно, т.е. Dim MyVar As <чего-нибудь>
Если переменная не объявлена, и Option Explicit указано, то vb ругнется на твою неуказанную переменную, и возможно, ты заметишь, что Wins.Caption была считана в переменную Winsss, а в файл записывается совсем другая переменная - Wins, которая не была объявлена и не инициализирована.
Option Explicit необходим для быстрой генерации имен, не просматривая весь код на тему непонятных названий. Классная вещь. Но чтобы не заморачиваться с написанием этого каждый раз, необходимо указать в опциях компилера Require Variable Declaration.
Ты ни чего не путаешь?
Require Variable Declaration - требует обязательного объявления
переменных
Ну? При установленной галке Require variable declaration в каждый созданный после установки галки модуль автоматически дописывается Option Explicit. В модули, созданные ранее, дописывать Option Explicit нужно ручками.
Кстати, советую почитать тему "Странная странность в VB6", чтобы посмотреть, к каким глупым последствиям может привести неиспользование Option Explicit.
Ссори за офф-топ.
Fever объясни что ты понимаешь под быстрой генерацией имени?
не просматривая весь код на тему непонятных названий
Какие такие не понятные названия? - Если ты автор этих строк, то
каждая имя каждой переменный ты знаешь и помнишь. Я не говорю о
больших проектах, с большим числом форм.
звезд больше а ничего не знаешь
Во первых, кол-то звезд не зависит от степени знания юзера, а является
только счетчиком отправленных ответов и заданных вопросов.
Во вторых, извини меня - не тебе судить о глубине моих знаний, причем
я тебе задал вопрос, а ты начинаешь коментировать степень моих знаний,
прежде чем доказал свою правоту!