Ir para conteúdo
Fórum Script Brasil

cavotta

Membros
  • Total de itens

    42
  • Registro em

  • Última visita

Posts postados por cavotta

  1. Seria melhor você dizer o que o programa retorna :) , senão dá a impressão que isso é um desafio do tipo: encontre onde vai dar erro ... hehe.

    Eu acho que é por causa disso aqui: ele vai ler até o próximo '\n' ou ' ', ignorando esse '\n', que vai ficar para o próximo scanf ler, mas não tenho certeza. Por isso a importância de você dizer qual o erro que dá. Eu sugiro que você adicione uma linha:

    scanf("%s",resp);
    getchar();

  2. Olá, obrigado por responder, mas não deu certo não; Agora deu erro com isso:

    Traceback (most recent call last):
      File "/home/kunigami/workspace/test/src/xml/file.py", line 19, in ?
        f.write("</head>\n<body>\n<div id=\"tudo\">\n\
      File "/usr/lib/python2.4/codecs.py", line 501, in write
        return self.writer.write(data)
      File "/usr/lib/python2.4/codecs.py", line 178, in write
        data, consumed = self.encode(object, self.errors)
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 50: ordinal not in range(128)
    Isso porque eu tentei:
    f.write("ééééé")

    O engraçado é que antes isso funcionava, mas a string que o parser retorna não funciona! O problema deve estar no modo como o parser está retornando a string!?

  3. Olá pessoal,

    Estou aprendendo python ainda, especificamente a parte de lidar com XML.

    Eu fiz um parser pra XML em python, mas estou tendo problemas com caracteres do português:

    arquivo xml: página.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <texto>Ola mundo!
    Esta é minha primeira pagina gerada com python</texto>
    
    parser do xml: parseText.py:
    # -*- coding: iso-8859-1 -*-
    #! /usr/bin/env python
    
    import xml.sax.handler
    
    class BookHandler(xml.sax.handler.ContentHandler):
      def __init__(self):
          self.buffer = ""
    
    #  def startElement(self, name, attributes):
    
      def characters(self, data):
          if data == '\n':
              self.buffer += "<br>"
          self.buffer += data
    
    #  def endElement(self, name):
    
    import xml.sax
    import pprint
    
    def ParseText(XMLfilename):
        parser = xml.sax.make_parser()
        handler = BookHandler()
        parser.setContentHandler(handler)
        parser.parse(XMLfilename)
        return handler.buffer
    
    Trecho do meu gerador de páginas: file.py:
    #! /usr/bin/env python
    # -*- coding: iso-8859-1 -*-
    
    # variáveis
    text_name = "exemplo"
    
    f = open(text_name+".html",'w+')
    
    # parse text
    from parseText import ParseText
    texto = ParseText('pagina.xml')
    f.write(texto+'\n')
    
    # script identifier
    f.write("<!-- Página gerada automaticamente por um script python\n\
    written in Eclipse-Pydev -->\n")
    f.close()
    

    Eu estou tendo o seguinte erro:

    QUOTE

    f.write(texto+'\n')

    UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 20: ordinal not in range(128)

    Que se deve ou 'é' do 'página.xml'

    Como proceder? Obrigado.

  4. 1-) Quando você não coloca chaves, é entendido como se só a próxima instrução estivesse dentro das chaves:

    logo,

    if (condicao){
      instrucao
    }
    igual a
    if (condicao)
      instrucao
    Mas
    if (condicao){
      instrucao1
      instrucao2
    }
    diferente de
    if (condicao)
      instrucao1
      instrucao2  // esssa instrucao esta fora do 'if'
    

    2-) Não há problema algum em deixar o "return false" na mesma linha. É questão de gosto

    3-) Não conheço tal método :(

    4-) Essa sintaxe eu também não conheço :(

  5. Bom eu também não sou mestre em php, mas seria mais ou memos assim:

    <?php
    
    $filename = "ficheiro.txt";
    $handle = fopen($filename,"r");
    
    $file = fread($handle,filesize($filename));
    
    $linhas = explode("\n",$file);
    
    //ultimo da lista é nulo - remove                                                                                           
    array_pop($linhas);
    
    //vamos imprimir linhas[n-5], ..., linhas[n-1]                                                                               
    
    $n = count($linhas);
    $msg = "";
    for ($i=$n-5; $i<$n; $i++){
      if ($i>=0)
        $msg = $msg.$linhas[$i]." ";
     }
    
    
    echo "<script>                                                                                                               
    function addtext(){                                                                                                          
    document.input.msg.value = \"".$msg."\"                                                                                      
    }                                                                                                                            
    </script>";
    ?>
    
    <body onload='addtext()'>
    <form name='input'>
    <textarea rows='10' cols='30' name='msg' class='msg'> </textarea>
    </form>
    
    </body>
    

    PS: eu não sei como pular linha dentro do textarea.

  6. você poderia fazer isso (se é que eu entendi bem):

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    int cont;
    int index=0;
    char str[5]="joao";
    for(cont=0;cont<1000;cont++)
    {
    for (i=0; i<5; i++)
      printf("\n%c",str[index]);
    if(index==4)
    {
    index=0;
    }else ++index;
    }
    system("Pause");
    return 0;
    }
    adicionei essa linha:
    for (i=0; i<5; i++)

  7. Bug resolvido! Testei a máscara pra telefone no FF e IE. Tá ok!

    Testem com outros tipos de máscaras. Se descobrirem erros postem aqui. Seria bom fixar esse código em algum lugar, pois googlei e tem muitos fóruns com esse mesmo código (muitos com o bug).

    <script language=javascript>
    //MÁSCARA DE VALORES
    
    function txtBoxFormat(objeto, sMask, evtKeyPress) {
        var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
    
    
    if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode;
    } else if(document.layers) { // Nestcape
        nTecla = evtKeyPress.which;
    } else {
        nTecla = evtKeyPress.which;
        if (nTecla == 8) {
            return true;
        }
    }
    
        sValue = objeto.value;
    
        // Limpa todos os caracteres de formatação que
        // já estiverem no campo.
        sValue = sValue.toString().replace( "-", "" );
        sValue = sValue.toString().replace( "-", "" );
        sValue = sValue.toString().replace( ".", "" );
        sValue = sValue.toString().replace( ".", "" );
        sValue = sValue.toString().replace( "/", "" );
        sValue = sValue.toString().replace( "/", "" );
        sValue = sValue.toString().replace( ":", "" );
        sValue = sValue.toString().replace( ":", "" );
        sValue = sValue.toString().replace( "(", "" );
        sValue = sValue.toString().replace( "(", "" );
        sValue = sValue.toString().replace( ")", "" );
        sValue = sValue.toString().replace( ")", "" );
        sValue = sValue.toString().replace( " ", "" );
        sValue = sValue.toString().replace( " ", "" );
        fldLen = sValue.length;
        mskLen = sMask.length;
    
        i = 0;
        nCount = 0;
        sCod = "";
        mskLen = fldLen;
    
        while (i <= mskLen) {
          bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
          bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
    
          if (bolMask) {
            sCod += sMask.charAt(i);
            mskLen++; }
          else {
            sCod += sValue.charAt(nCount);
            nCount++;
          }
    
          i++;
        }
    
        objeto.value = sCod;
    
        if (nTecla != 8) { // backspace
          if (sMask.charAt(i-1) == "9") { // apenas números...
            return ((nTecla > 47) && (nTecla < 58)); } 
          else { // qualquer caracter...
            return true;
          } 
        }
        else {
          return true;
        }
      }
    
    
    </script>
    
    <body>
    Telefone:<input type="text" size="20" onkeypress="return txtBoxFormat(this, '(99)9999-9999', event);">
    </body>
    

  8. Olá, pessoal.

    Acho que agora está funcionando no Firefox.

    Troque esse trecho de código:

    if(document.all) { // Internet Explorer
      nTecla = evtKeyPress.keyCode; }
    else if(document.layers) { // Nestcape
      nTecla = evtKeyPress.which;
    }
    Por esse:
    if(window.Event) { // keep the capital "E"
    // Nestcape and Firefox
    nTecla = evtKeyPress.which;
    } else {
    // Internet Explorer
    nTecla = evtKeyPress.keyCode;
    }

    Seria bom se a autora do post o modificasse, pois esse código é bem generalizado e serve pra muita gente.

    descobri mais um bug no FF: não dá para apagar os números digitados

    Quem solucionar posta aí.

×
×
  • Criar Novo...