
tucano
Membros-
Total de itens
22 -
Registro em
-
Última visita
Tudo que tucano postou
-
Olá Kay, Acho que com a formatação correta até rola isso que você tá querendo (Mas nunca me aprofundei em formatação, é só um chute!! Uso Python mais para cálculos/plotagem...). Dá uma olhada nessa documentação que pode ser que ajude, é um tutorial sobre formatação de saída: http://docs.python.org/tutorial/inputoutput.html Mas acho que não faz sentido deixar de usar um laço para fazer isso, até porque a solução fica bem mais simples: # Python 2.7.x for i in lista: print i, '\n' Abraços
-
Olá, Estou mexendo com web services para monitoramento de uma rede de sensores. A implementação já está pronta e é código aberto da iniciativa 52north. Estou apenas adaptando para as minhas necessidades. Já consigo fazer a requisição do serviço e consigo resposta do servidor. Acontece que o servidor retorna XML, e estou com uns problemas para tratar a resposta. Vou descrever o processo porque aí fica mais fácil entender o problema: O usuário do serviço entra com dois valores. Eles são capturados e por AJAX (através de um script PHP), uma string XML (pedido descritivo do serviço) baseada nos dois valores é criada e mandada para o servidor, que trabalha em JSP. O servidor então interpreta a string e manda de volta outro XML, que é a resposta do pedido. Os dados da resposta estão corretos e tudo o mais. O problema é que quando o navegador recebe isso, já redireciona para uma página nova e simplesmente imprime o XML na tela, com todas as tags e sem formatação nenhuma... Eu já brinquei com PHP mas nunca fiz nada dessa complexidade. Queria saber então o caminho para capturar esse XML sob forma de um objeto SimpleXML ou pode ser até como string mesmo, porque aí daria para tratar... Alguém sabe lidar com isso? Obrigado!
-
Eu uso o Geany e ocasionalmente o NetBeans e acho ambos excelentes, com suas particularidades.
-
Ao selecionar uma das opções no 'select' alterar dados.
pergunta respondeu ao Rodrigo Kx de tucano em PHP
Olá, isso pode ser feito com Javascript. http://www.w3schools.com/jquery/default.asp Att. -
Compilei no prompt e também funcionou sem problema nenhum...
-
Olá, Você tem que especificar o modo de abertura do arquivo, por exemplo: f = open("arquivo.ext", "w") # abre arquivo em modo de escrita g = open("arquivo2.ext", "r") # abre o arquivo em modo de leitura Isso deve ser bastante útil: (VEJA O TÓPICO 7.2) http://docs.python.org/tutorial/inputoutput.html Abraços e boa sorte! Edit: Para abrir arquivo, usar parênteses.
-
Tomaz Edson, tem um pacote chamado os que atende às suas necessidades. Para utilizá-lo, antes de chamar qualquer método dele você deve importá-lo: import os Particularmente, para limpar a tela e executar um .sh, tem um método desse pacote que dá conta. Ele passa comandos para o Sistema Operacional, é o os.system(<comando>): >>> os.system("clear") # Limpa a tela (Linux) >>> os.system("./script.sh") # Executa script.sh (Já com permissão de execução) Sobre iniciar o programa numa tela com tamanho pré-definido, nunca tentei. É bem provável que esse mesmo pacote tenha algum método que faça isso... Abraços Edit: Pode ser que você já tenha lido, mas fica a dica de qualquer forma. Este tutorial é extenso mas é muito bom para quem começa a programar em Python: http://docs.python.org/tutorial/index.html
-
E aí, Tomaz Edson! Cara, você tem razão. É que na realidade eu me arrisco em Python mas é de cara-de-pau mesmo. Foi um erro honesto!! heheh Fui pesquisar agora e parece que no Python 3.x o print foi implementado como function e não mais como statement: Vide: http://stackoverflow.com/questions/6239887...n-in-python-3-x Daí agora os parênteses não são mais opcionais... Abraços
-
(Resolvido) Inserção de dados no mySQL por um form
pergunta respondeu ao nando kikongo de tucano em PHP
Tem um tutorial neste link que explica isso bem certinho: http://techandetcblog.wordpress.com/2011/0...utilizando-php/ Abs -
Henzel, na vdd void significa "vazio", "nada"... A presença dele é opcional. Escrever void main (void) é a mesma coisa que escrever main(void), que é o mesmo que void main(), que é igual a main()... Dá tudo na mesma. A notação está lá mais por boa prática de programação. É a mesma linha de escrever apenas "return;" numa função que retorna void... O void antes do nome de uma função significa que essa função não retorna nada. No caso da main que você viu com o void antes mas retornando 0, pode ser que esse código tenha sido escrito num ambiente que o processo precise retornar algo, Linux por exemplo (retorna 0 caso não haja erro e outro número caso haja). Sobre os parâmetros da função main, ela só pode receber nenhum (main(void) ou simplesmente main()) ou 2 parâmetros. É padrão que esses argumentos, quando existem, sejam (int argc, char *argv[]). É que quando você chama o programa (mais comumente por linha de comando no Terminal do Linux ou no Prompt do DOS) você pode passar um ou mais argumentos para o programa. Por exemplo: //codigo.c #include <stdio.h> int main (int argc, char *argv[]) { printf("Meu primeiro argumento foi: %s\n", argv[1]); return 0; } Se você compilar esse código e chamá-lo através do terminal: $./codigo argumento1 Ou ainda no windows: >codigo.exe argumento1 Na tela aparecerá: Meu primeiro argumento foi: argumento1 Os argumentos da main são os argumentos que você passa para o programa ao executá-lo. Observações: 1 - argc contará sempre o total de argumentos que foram passados 2 - argv[0] é sempre o nome do programa; os argumentos começam a contar mesmo a partir de argv[1], argv[2], ..., argv[n]
-
Luiz_Junior, põe um rewind(fp); depois do fprintf(fp,"%s",nome); que funciona. Não tenho nem ideia do que cause isso...
-
Problemas na busca por valores minimo e máximo
pergunta respondeu ao Guilherme Freire de tucano em PHP
Acho que é isso, mesmo. Talvez isso ajude: http://scriptbrasil.com.br/forum/index.php?showtopic=110775 -
Problemas na busca por valores minimo e máximo
pergunta respondeu ao Guilherme Freire de tucano em PHP
Guilherme Freire, quanto a valor moeda, não sei te ajudar... Na verdade não conheço esse tipo de dado em SQL, mas dá uma olhada nessa busca, porque com esse 'or' aí, a query vai retornar todos os resultados para os quais qualquer uma das condiçoes for verdadeira, por exemplo: No intervalo de 1 a 10, selecione todos os números x que atendem (x >= 2 OU x <= 8) -> a seleção retorna o intervalo todo, porque: x >= 2 é (2, 3, 4, 5, 6, 7, 8, 9, 10) x <= 8 é (1, 2, 3, 4, 5, 6, 7, 8) Como você mandou selecionar quem atende uma condição OU a outra, a query retorna todo o intervalo [1, 10]. O correto seria: No intervalo de 1 a 10, selecione todos os números x que atendem (x >= 2 E x <= 8) -> agora sim ele vai retornar a intersecção dos conjuntos, isto é, quem atende às duas condições simultaneamente: somente [2, 8], ou seja: ... $busca .= "AND valor_imovel >= 'x' and valor_imovel <= 'y'"; ... -
Guilherme, segue o retorno da consullta da versão do mysql: # mysql --version mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (x86_64) using readline 6.1 Abraços, disponha!
-
Guilherme Becker, você tem razão. Deve ser a versão do mysql que está dando problema. Criei um banco, fiz a query e não ocorreu nada anormal... Pode ser que a sua versão não suporte MyISAM. Talvez isto possa ajudar: http://dev.mysql.com/doc/refman/5.0/en/myi...age-engine.html Se você trocar o 'TYPE=MyISAM' por 'TYPE=ISAM' ou então não especificar o tipo, a query funciona?
-
Bom dia, tem um erro na sintaxe do SQL, especificamente na linha 6 do script. Posta aí esse trecho do código da linha 6 porque aí fica mais fácil achar o problema de sintaxe...
-
Amigo, segue o código corrigido e uma lista com os erros. ERROS: 1 - ao tentar fazer comparação, você estava mandando fazer atribuição (trocou "==" por "="): diferente de C/C++, atribuições em condicionais não são permitidas, daí o script nem roda (C/C++ compilaria e daria erro ao rodar o programa). 2 - raw_input retorna uma string, mas você quer um número, então você precisa fazer um cast, isto é: int(raw_input('whatever...')) no lugar de raw_input('whatever...') apenas. Senão, se você mandar somar 2 e 2, por exemplo, o Python retorna '2' + '2', isto é, '22'. Já se você mandar somar 2 + 2, ele retorna 4. 3 - a indentação em Python é o que define o escopo de um bloco de código, em outras palavras, indentação é muito importante em Python (não sei se você indentou, pareceu que não). 4 - não é bem um erro, mas ao imprimir, diferente do printf() do C, quando você chama um print em Python, não precisa dos parênteses. CÓDIGO CORRIGIDO: #!/urs/bin/env python #-*- coding: UTF-8 -*- print ("Bem vindo!") escolha = (raw_input("Digite a conta que deseja fazer: ")) if escolha == 'adição': numero = int(raw_input("Digite o primeiro número a ser somado:")) numero2 = int(raw_input("Digite o segundo numero a ser somado:")) resposta = numero + numero2 print (resposta) elif escolha == 'subtração': minuendo = int(raw_input("Digite o minuendo:")) minuando = int(raw_input("Digite o minuando:")) resposta = minuendo - minuando print (resposta) elif escolha == 'divisão': dividendo = int(raw_input("Digite o dividendo:")) divisor = int(raw_input("Digite o divisor:")) resposta = dividendo / divisor print (resposta) elif escolha == 'multiplicação': multiplicando = int(raw_input("Digite o multiplicando:")) multiplicador = int(raw_input("Digite o multiplicador:")) resposta = multiplicando * multiplicador print (resposta) else: print("Revise o número colocado!")
-
Cara, é porque toda vez que você passa pelo laço você manda fazer uma query... while ($arr = mysql_fetch_array(mysql_query('select * from alunos'))) { ... } Isso não dá certo. O laço não acaba nunca, porque toda vez o php vai resolver a query como se fosse uma coisa nova, ele vai interpretar que você quer selecionar todo mundo da tabela outra vez, e não é isso que você quer. Põe a query numa variável: $resultado = mysql_query('select * from alunos'); while ($arr = mysql_fetch_array($resultado)) { ... } Aí sim ele vai saber que se trata da mesma query, porque a variável é a mesma. (Não testei!! Mas certeza que é bem por aí...)
-
LacosTTe, também achei meio esquisito esse modo que ele passou, mas parece que não está errado... Pelo menos aqui, compila (no gcc 4.4.5-8 Debian) e funciona. O que está faltando é um ponto-e-vírgula na declaração do arqAgenda e realmente o fwrite está errado (vide http://www.cplusplus.com/reference/clibrary/cstdio/fwrite).
-
Amigo, eu tenho um código muito parecido com o que você precisa. Se quiser pode reaproveitar. É utilizando uma tabela hashing (vide http://pt.wikipedia.org/wiki/Hashing). Basicamente você teria que copiar o conteúdo do arquivo para uma estrutura intermediária (tabela de dispersão) e, dada a entrada do usuário, você faria a consulta por aquela entrada na tabela. A complexidade da pesquisa, idealmente, é de ordem constante, independente do número de produtos no estoque. Fica bem mais rápido do que fazer uma busca em laço. Segue o código para uma estrutura definida por uma string e um inteiro (produto e qte em estoque). /** * @file dicionario.c * @author Eduardo Vasconcelos * @brief Tabela de dispersao aberta * @date 28 Nov 2011 */ #include <stdio.h> #include <stdlib.h> #include <string.h> #define TAM_PALAVRA 30 #define TAM_TABELA 13 typedef struct bloco { char palavra[TAM_PALAVRA]; int valor; struct bloco *prox; }no; typedef struct { no *ini, *fim; }lista; lista dicionario[TAM_TABELA]; int hash(char *p_hash) { int i = 0, r = 0; for (; i < strlen(p_hash); i++) r += p_hash[i]; return (r % TAM_TABELA); } inicializa () { int i = 0; for (; i < TAM_TABELA; i++) { dicionario[i].ini = NULL; dicionario[i].fim = NULL; } } inserir(char *p_inserir, int v_inserir) { int h = hash(p_inserir); no *aux = (no*) malloc (sizeof(no)); strcpy(aux->palavra, p_inserir); aux->valor = v_inserir; aux->prox = NULL; if (dicionario[h].ini == NULL) { dicionario[h].ini = aux; dicionario[h].fim = aux; } else { dicionario[h].fim->prox = aux; dicionario[h].fim = aux; } } int pesquisar(char *p_pesquisar) { int h = hash(p_pesquisar); if (dicionario[h].ini == NULL) return -1; else { no *aux = dicionario[h].ini; while (aux != NULL) { if (strcmp(aux->palavra, p_pesquisar) == 0) return aux->valor; else aux = aux->prox; } } return -1; } int main (int argc, char *argv[]) { int t, n, v; char c[3], *p = (char*) malloc (TAM_PALAVRA * sizeof(char)); scanf("%d", &t); for (; t > 0; t--) { inicializa(); scanf("%d", &n); for (; n > 0; n--) { fflush(stdin); scanf("%s", c); if (strcmp(c, "I") == 0) { scanf("%s %d", p, &v); inserir(p, v); } else { scanf("%s", p); printf("%d\n", pesquisar(p)); } } } return 0; } Dicas: -> Defina TAM_TABELA com um número primo próximo do número de elementos que você espera guardar no dicionario, para otimizar a pesquisa. -> A pesquisa retorna -1 se o elemento não está na tabela e a qte relacionada a ele se o elemento está lá.
-
Olá Clau Gueno, acontece que a função fscanf recebe (neste caso) 3 parâmetros: 1 - o ponteiro para o arquivo; 2 - o que será lido e 3 - "para onde" será lido o correto seria: fscanf(arqAgenda, "%s", contato.(algo, não sei como você definiu a estrutura)); Mas não vai dar certo. Observe que: -> O arquivo deve estar aberto e ser válido, isto é, o ponteiro (arqAgenda) não pode ser nulo. Parece que você não chegou a abrir nada no arqAgenda. Antes de ler do arquivo, você deve abrí-lo. -> Leitura de string não tem & (E Comercial) na frente do nome da string e quando lendo de arquivo, o primeiro argumento é o arquivo. A construção: fscanf(contato, "%s", &arqAgenda); vai apresentar erro (contato é a sua estrutura e não o arquivo). Dá uma olhada neste site aqui: http://www.cplusplus.com/ Nele você sempre acha os protótipos das funções que precisa!! Editado: Erro na tag
-
Olá, Tem como fazer isso sim. A única restrição é que você só vai poder sobrescrever o mesmo número bytes, por exemplo: Se no arquivo a ser reescrito consta (sem aspas): "15\npessoa003" Você poderá reescrever a partir do início do arquivo (sem prejudicar o 'pessoa003'): "16\npessoa003", pois o que foi escrito (16) tem o mesmo número de bytes do que estava lá (15). Entretanto, se você tentar escrever algo com número de bytes maior do que aquilo que estava lá, o 15, o resto do arquivo será prejudicado, isto é, o 'pessoa003' vai ser, pelo menos em parte, sobrescrito também. Segue o código: #include <stdio.h> int main (int argc, char *argv[]) { int p = 16; FILE *arquivo = fopen("arquivo.txt", "r+"); fprintf(arquivo, "%d", p); fclose(arquivo); return 0; } Nota: arquivo.txt tem o seguinte conteúdo: