forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Вопрос-Ответ (для новичков) (http://forum.boolean.name/showthread.php?t=7886)

RegIon 06.06.2011 11:29

Ответ: Вопрос-Ответ (для новичков)
 
Код:

;GetKey возращает символ нажатой кнопки в Аск2
string_$=Chr(GetKey())
If string_$>"!";чтоб отсеять символ нечитабельный
String__$=String__$+string_$
EndIf
Text x,y, String__$;чтоб видно было


RlexGm 06.06.2011 11:52

Ответ: Вопрос-Ответ (для новичков)
 
всё равно не пишет в файл

LLI.T.A.L.K.E.R. 06.06.2011 12:16

Ответ: Вопрос-Ответ (для новичков)
 
Код:

If EnterKey$="2317499356"
Походу зациклен. Нужно один раз проверять, например при нажатии "Сохранить"

PHP код:

WriteFile (filename$)
Open a file to write to (открыть файл для записи

Код:

; Open a file to write to
fileout = WriteFile("mydata.dat")

; Write the information to the file
WriteString( fileout, BestName )
WriteInt( fileout, BestScore )
WriteByte( fileout, BestLevel )

; Close the file
CloseFile( fileout )

; Open the file to Read
filein = ReadFile("mydata.dat")



С OpenFile (filename$) со строками чёт помудрёней будет

RlexGm 06.06.2011 12:51

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 190419)
Код:

If EnterKey$="2317499356"
Походу зациклен.

Нечего подобного :)
Цитата:

С OpenFile (filename$) со строками чёт помудрёней будет
разницы нет

RegIon 06.06.2011 15:21

Ответ: Вопрос-Ответ (для новичков)
 
а народ то не знает как с файлами работать...:-D

RlexGm 06.06.2011 16:19

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от RlexGm (Сообщение 190424)

разницы нет

в смысле что на результат ни как не влияет, как не записывал, так и не записывает

St_AnGer 06.06.2011 16:23

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от RlexGm (Сообщение 190412)
Такой вопрос, b3d сравнивает переменные string$?
У меня такой код:
PHP код:

If EnterKey$="2317499356"

Regfile=OpenFile("data\maps\7\file.vs")
WriteLine(regfile,"ab729c")
CloseFile(regfile)
click=0
Else

EnterKey$=""
SimKol=0
click
=0
EndIf 

PHP код:

Text centrw,centrh-50,"Press key",True,True
Text centrw
,centrh,EnterKey$,True,True
If SimKol<=10

If KeyHit(2Then EnterKey$=EnterKey$+"1":SimKol=SimKol+1
If KeyHit(3Then EnterKey$=EnterKey$+"2":SimKol=SimKol+1
If KeyHit(4Then EnterKey$=EnterKey$+"3":SimKol=SimKol+1
If KeyHit(5Then EnterKey$=EnterKey$+"4":SimKol=SimKol+1
If KeyHit(6Then EnterKey$=EnterKey$+"5":SimKol=SimKol+1
If KeyHit(7Then EnterKey$=EnterKey$+"6":SimKol=SimKol+1
If KeyHit(8Then EnterKey$=EnterKey$+"7":SimKol=SimKol+1
If KeyHit(9Then EnterKey$=EnterKey$+"8":SimKol=SimKol+1
If KeyHit(10Then EnterKey$=EnterKey$+"9":SimKol=SimKol+1
If KeyHit(11Then EnterKey$=EnterKey$+"0":SimKol=SimKol+1

EndIf 

Суть заключается в том, что когда будет введена переменная, и нажата кнопка будет сравнение набранной переменной с строковыми цифрами.Если набрано правильно, то в файл должна записаться строка.
Но когда набираешь правильно, то записи в файл не происходит.Просто всё стирается.Скажите пожалуйста в чём проблема.

Тупо скопировал твой код и вставил в б3д с небольшим допиливанием. Всё сравнивает и пишет в файл. Но, происходит перезапись файла. Исправляется предварительным чтением всего файла в массив пользуясь циклом
Код:

While Not Eof(file)
...
Wend

,
и последующая запись всего по порядку.
Возможно как то можно открыть файл в б3д на дозапись, но я не знаю как.

RegIon 06.06.2011 16:42

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Возможно как то можно открыть файл в б3д на дозапись, но я не знаю как.
там SeekFile( file, ofset) ставит позицию для записи,не знаю в чем мерится...

RlexGm 06.06.2011 17:01

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от St_AnGer (Сообщение 190438)
Но, происходит перезапись файла

Перезапись? Стирается старое значение и записываеться новое?

RegIon 06.06.2011 17:16

Ответ: Вопрос-Ответ (для новичков)
 
да,но с лайнами вроде так не проходит,он всегда дописывает лайн(WriteLine)

St_AnGer 06.06.2011 18:20

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от Костян (Сообщение 190443)
да,но с лайнами вроде так не проходит,он всегда дописывает лайн(WriteLine)

дописывает только при текущей работе с файлом до закрытия файла. Иначе файл переписывается с нуля новыми данными.

RegIon 07.06.2011 07:04

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

дописывает только при текущей работе с файлом до закрытия файла. Иначе файл переписывается с нуля новыми данными.
ведать я его забывал закрывать...

RlexGm 08.06.2011 19:15

Ответ: Вопрос-Ответ (для новичков)
 
выяснил что при сравнении б3д не видит что EnterKey$ и циферки равны, т.к. выполняется условие "не равно"...С чем это может быть связано?

LLI.T.A.L.K.E.R. 09.06.2011 01:42

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от RlexGm (Сообщение 190412)
Такой вопрос, b3d сравнивает переменные string$?
У меня такой код:
Код:

If EnterKey$="2317499356"
 . .
Else
 . . EnterKey$=""
EndIf


Короче так как EnterKey$ изначально не равен "2317499356"
то он всегда чист EnterKey$=""
Тут вот тупик!

Или давай относительно полный код! Так как наверняка проверка If EnterKey$="2317499356" происходит в один определённый момент (действии).

RlexGm 09.06.2011 09:17

Ответ: Вопрос-Ответ (для новичков)
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 190811)
то он всегда чист EnterKey$=""

Так он же выводиться на экран:4to:
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 190811)
давай относительно полный код! (действии).

PHP код:

If bt\status=And click=1 Then ;click=1 когда нажимаешь на мышь
...
...
...

If 
bt\id=26 Then если id кнопки такойто:
If 
EnterKey$="2317499356"
FileReg=OpenFile("data\maps\7\file.vs")
WriteLine(FileReg,"ab729c")
CloseFile(FileReg)
EndIf
If 
EnterKey$!="2317499356" здесь делал разное: Else, If not EnterKey$= , != и т.д
EnterKey$=""
SimKol=0
End 
если вылетаетзначит выполняется это условие
EndIf  
EndIf

...

click=0
EndIf
EndIf 

не большая не важная поправка, код php убрал знак \. bt\ это в типе. Например тут btstatus=2, а должно быть bt\status=2


Часовой пояс GMT +4, время: 18:01.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot