[Resolvido] Unexpected error estranho

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Resolvido] Unexpected error estranho

Mensagem por luiz_eldorado em Qua 23 Maio 2012, 19:52

Olá pessoal, estou com um problema de "Unexpected error".
Código do Create (parte importante):
Código:
var arquivo,str;
mapa=ds_map_create()

str=''
if file_exists('senhas.txt') {
arquivo=file_text_open_read('senhas.txt')
while(file_text_eof(arquivo)) {
str+=file_text_read_string(arquivo)
file_text_readln(arquivo)
}
file_text_close(arquivo)
}

ds_map_read(mapa,str)
Sim, existe um arquivo chamado "senhas.txt". Eu deletei a parte dentro do if, e o jogo saiu normal. Deixei só a parte de abrir o arquivo ("arquivo=file_text_open_read('senhas.txt')"), mas deu erro assim mesmo. O que é que pode ser?

Até mais!


Última edição por luiz_eldorado em Qua 23 Maio 2012, 22:06, editado 1 vez(es)

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Unexpected error estranho

Mensagem por GameMakerTutoriais em Qua 23 Maio 2012, 20:17

Tenta while not...

Código:
while not file_text_eof(arquivo)
{
//...
}

Outra coisa. Você concatenou tudo numa variável só. Dependendo do tamanho do arquivo de texto, essa pode ser a causa do "Unexpected error".

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Resolvido] Unexpected error estranho

Mensagem por Convidad em Qua 23 Maio 2012, 21:11

Tente o que o usuário Ninja8086 disse.
Se você se interessar por Batch o código pode ser feito dessa maneira, funciona perfeitamente, testei e é funcional, não custa nada testar o código, ele envia a str para o arquivo senhas.txt:

Código:
@echo off
color 0f
goto vars

:vars
cls
set str=
set arquivo=senhas.txt
call :int

:int
cls
if exist "%arquivo%" goto write
if not exist "%arquivo%" goto errorlog

:write
cls
set /p str="Enviar String:"
if "%str%"=="%str%" goto openread

:openread
echo %str%> "%arquivo%"
goto next

:next
echo.
echo String enviada com sucesso.
start %arquivo%
pause>nul

:errorlog
echo Unexpected Error.
pause>nul
exit

Lembrando que o arquivo senhas.txt tem que estar no mesmo local do arquivo batch. Se não da Unexpected Error. Happy

Fuizz!

EDIT

Você pode acrescentar também no quadro "next" a linha de código, antes do "String enviada com sucesso":

Código:
echo A string enviada foi: %str%

Isso vai fazer com que o Prompt mostre a string que o usuário enviou para conferir com o escrito no txt.
Isto é só uma dica Falou! Happy

EDIT

Nossa a maioria das minhas mensagens é cheia de edit "/
Mas vamos, Responde uma pergunta que pode ser feita por alguém que estiver lendo:

Fulano: O código funciona perfeitamente mas tudo que foi digitado no texto senha é substituído pelo o novo texto digitado, tem como pular uma linha e colocar o nome desse digitado tipo assim: Digitei Oi, depois digito Olá e a palavra Olá fica abaixo da palavra Oi, ou seja acrescenta palavras mantendo as mesmas. Isso é possível?

Eu: Sim, vejamos basta trocar a linha no quadro "openread":

Código:
echo %str%> "%arquivo%"

Por esta:

Código:
echo %str% >> "%arquivo%"

Simples não? Funciona perfeitamente! Fuizz Razz
Talvez haja mais edits! ushaushaushaush

EDIT

Outro edit nossa acho que esse vai ser o ultimo, corrigindo o bug de avançar para o quadro errorlog, após enviar a string, adicione:

Código:
goto write

Abaixo do:

Código:
pause>nul

no quadro "next". Ficando assim:

Código:
:next
echo.
echo String enviada com sucesso.
start %arquivo%
pause>nul
goto write

Código final:

Código:
@echo off
color 0f
goto vars

:vars
cls
set str=
set arquivo=senhas.txt
call :int

:int
cls
if exist "%arquivo%" goto write
if not exist "%arquivo%" goto errorlog

:write
cls
set /p str="Enviar String:"
if "%str%"=="%str%" goto openread

:openread
echo %str%> "%arquivo%"
goto next

:next
echo.
echo String enviada com sucesso.
start %arquivo%
pause>nul
goto write

:errorlog
echo Unexpected Error.
pause>nul
exit

Você também pode optar por:

Código:
call :write

em vez de:

Código:
goto write

Faça o que achar melhor, ambos vão corrigir o bug. Caso optar pela função call. O código no quadro "next" ficaria assim:

Código:
:next
echo.
echo String enviada com sucesso.
start %arquivo%
pause>nul
call :write

E o código final:

Código:
@echo off
color 0f
goto vars

:vars
cls
set str=
set arquivo=senhas.txt
call :int

:int
cls
if exist "%arquivo%" goto write
if not exist "%arquivo%" goto errorlog

:write
cls
set /p str="Enviar String:"
if "%str%"=="%str%" goto openread

:openread
echo %str%> "%arquivo%"
goto next

:next
echo.
echo String enviada com sucesso.
start %arquivo%
pause>nul
call :write

:errorlog
echo Unexpected Error.
pause>nul
exit

Fuiiz Happy


Última edição por Focuws em Qua 23 Maio 2012, 21:53, editado 3 vez(es)

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Unexpected error estranho

Mensagem por luiz_eldorado em Qua 23 Maio 2012, 21:48

@Ninja8086: Valeu mesmo aí Ninja8086! Eu realmente me esqueci de usar o not...
@Focuws: Como eu disse na minha MP...

Até mais!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: [Resolvido] Unexpected error estranho

Mensagem por Convidad em Qua 23 Maio 2012, 21:54

Luiz dei um edit, corrigir o erro pós execução do quadro "Next", se interessar olha la no meu post.

Fuiiz Happy

Convidad
Convidado


Voltar ao Topo Ir em baixo

Re: [Resolvido] Unexpected error estranho

Mensagem por Conteúdo patrocinado Hoje à(s) 03:52


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum