Ir para conteúdo
Fórum Script Brasil
  • 0

Uma solução para um problemão aqui


zimmer

Pergunta

É o seguinte tenho um software que roda juntamente com o banco de dados. já tenho varios clientes cadastrados nesse banco de dados e não posso de maneira nenhuma perder as informações deles.

O problema! Tenho que migrar para uma versão mais atual do software, porem no banco de dados foi adicionada 1 lina na tabela, e se eu faço um dump na tabela do software antigo e tento executar nesse novo ele diz que fata uma linha no arquivo .sql.

Eu preciso de um script que eu possa compilar em C+ ou alguma outra coisa que faça o seguinte! Que adicione , '0' antes do ); . Assim ele vai adicionar mais uma linha na tabela com valor 0 que é o que preciso!

Veja o exemplo de apenas 1 linha abaixo:

INSERT INTO `characters` VALUES ('admin', '268478781', 'Proquopio', '80', '7851', '6794', '4116', '4116', '1174', '1174', '36', '40', '36', '3', '47', '249', '3', '72', '345', '143', '100', '36', '41', '35', '23', '26', '14', '2', '4', '2', '0', '42682', '82450', '148641', '-3468', '1.00000000', '1.000000000', '7.000', '24.000', '4200000000', '0', '1000', '0', '0', '0', '0', '1024374', '1', '18', '18', '0', '0', '', '0', '0', '0', '0', '1154', null, '1', '1263523803056', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '', '0', '0', '0');

São 4000 linhas que devem ser modificadas.

Eu só estou pedindo isso por que é inviavel eu fazer manualmente por que são mais de 4,000 linhas e vou ficar o dia todo e ainda certamente vou apagar sem querer alguma coisa. Acho que um scrit em C+ é melhor de fazer mais caso tenha outra solujção se alguém poder me ajudar.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Não concordo que um "script" em C/C++ seja a melhor solução para o seu problema. Acho que um Ruby, Perl ou Python utilizando expressões regulares é melhor.

Não vale a pena o tempo de desenvolvimento para uma coisa tão "simples" como esta.

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Uê, pelo que entendi, você quer pegar um texto SQL (supondo estar em um arquivo) e onde tiver ")" adicionar", '0'" antes dele. não é??!?!

Velho, no Visual Basic você faz isso em menos de 2 minutos com um RichTextBox utilizando o método Replace...

Em C vai ser mais chato um pouco... Mas vamos lá.

#include <stdlib.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
   FILE *fp_r;
   FILE *fp_w;
   char ch;

   if((fp_r=fopen("C:\\pastaX\\test_IN.txt", "r"))==NULL)
   {
      printf("Err:. Open file IN\n");
      return 1;
   }
   if((fp_w=fopen("C:\\pastaX\\test_OUT.txt", "w"))==NULL)
   {
      printf("Err:. Open file OUT\n");
      return 1;
   }
   
   do
   {
      //===COPIA DO ARQUIVO + o ", '0')" no arquivo 
      ch=getc(fp_r);
      if(ch==')')
      {
         putc(',',fp_w);
         putc(' ',fp_w);
         putc(39,fp_w); // ASCII do '
         putc('0',fp_w);
         putc(39,fp_w); // ASCII do '
         putc(ch,fp_w);
      }
      else if(ch!=EOF)
         putc(ch,fp_w);
   }while(ch!=EOF);
   
   printf("\n");
   
   fclose(fp_r);
   fclose(fp_w);

   system("PAUSE");
   return 0;
}

Ele basicamente lê o arquivo test_IN.txt e escreve no arquivo test_OUT.txt mudando o ")" por ", '0')".

Acho que deve solucionar seu problema.

falou

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...