arquivo txt em lista

13. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 18:46h


consegui separar as strings com o codigo que vc me passou , mas quando converto a string para char o programa não roda.


  


14. Re: arquivo txt em lista

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/05/2015 - 19:41h

RBCOL escreveu:


consegui separar as strings com o codigo que vc me passou , mas quando converto a string para char o programa não roda.


Poderia passar o arquivo atualizado?

Porque precisa converter de string para char?

[]'s

T+

--

Dr. quanto tempo de vida eu tenho?
- 15 minutos.
E o que o Sr. pode fazer por mim?
- No máximo, um miojo. = )




15. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 21:18h


consegui converter a string em char, s´que não consigo inserí-lo no novo nó da lista dinâmica de forma direta sem digitar o texto estou tentando dessa forma mas não funciona. novo->titulo = titulo; Se alguém puder me ajudar agradeço.


16. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 21:22h


consegui converter a string em char, mas não conseguindo inserir o titulo no nó da lista dinâmica sem digitar mas de forma direta, estou tentando dessa forma novo->titulo = titulo; se alguém puder me ajudar agradeço.


17. Re: arquivo txt em lista

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/05/2015 - 21:24h

Pode postar o código?

[]'s

T+

--

Dr. quanto tempo de vida eu tenho?
- 15 minutos.
E o que o Sr. pode fazer por mim?
- No máximo, um miojo. = )




18. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 21:25h


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


int incremento = 1;
using namespace std;




struct lista{
int codigo;
char titulo[101];
char texto[501];
struct lista *prox;
};

typedef struct lista *Lista;


Lista inicializa(void){
return NULL;
}

Lista insere (Lista p){
Lista novo = (Lista)malloc(sizeof(lista));
Lista aux = p;
Lista aux2 = aux;

novo->codigo = incremento;
incremento++;

getchar();
//cout <<" Digite um titulo: ";
//gets(novo->titulo);
//cout << " Digite um texto : ";
//gets(novo->texto);

novo->titulo = titulo; nesta parte não roda, já tentei de todas as formas.

novo->prox =NULL;

if(aux == NULL)

return novo;

else{
while(aux->prox != NULL)
aux = aux->prox;
aux->prox = novo;
return p;

}
}

void imprime(Lista p){
Lista aux = p;
if(p == NULL){
cout << " Lista vazia\n";
return ;
}
while(aux != NULL){
cout << " Codigo: " << aux->codigo;
cout << "\n";
cout << " Titulo: " << aux->titulo << "\n Texto: " << " " << aux->texto;
cout << "\n\n";

aux = aux->prox;
}
}

bool vazia (Lista* l){
return(l == NULL);
}

Lista altera (Lista l){
Lista ant = NULL;
Lista p = l;

int codigo;
char titulo[101], titulo2[501];
cout << " Digite o codigo que deseja alterar: ";
cin >> codigo;

while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL){
cout << " Comando nao encontrado";
return l;
}

cout << " Codigo encontrado: ";
cout << " Codigo: " << codigo << "\n" << " " << p->titulo << p->texto;
cout << "\n\n";
cout << " Digite um novo titulo: ";
getchar();
gets(p->titulo);
cout << " Digite um novo texto : ";
gets(p->texto);

return l;
}

Lista exclui (Lista l){
Lista ant = NULL;
Lista p = l;

int codigo;
cout << " Digite o codigo que deseja remover: ";
cin >> codigo;

while(p != NULL && p->codigo != codigo){
ant = p;
p = p->prox;
}
if(p == NULL)
return l;
if(ant == NULL){
l = p->prox;
}
else{
ant->prox = p->prox;
}
free(p);
return l;
}

int main(void){
Lista lista = inicializa();

string comando;
string titulo1;
string texto1;
int i,j,k,tam,tam2;

cout << "\n\t\t ANOTAI\n\n\n";

while(comando.substr(0,4) != "SAIR"){
//cout << "\n 1 - INSERE \n 2 - ATUALIZA \n 3 - DELETA \n 4 - SELECIONA \n 0 - SAIR\n\n";
cout << "\n Linha de comando: ";
getline(cin, comando);
if ( comando.substr(0,6) == "INSERE"){
i = comando.find("'") +1;
j = comando.find(",");
k = comando.find(")");
tam =j-i;
tam2 = k - (j + 1);
titulo1 = comando.substr(9,21);
texto1 = comando.substr(34,13);
cout << "(" << titulo1 << "" << texto1 <<")" << "\n";

char *titulo = new char[titulo1.length()+1];
memcpy(titulo, titulo1.c_str(), titulo1.length()+1);

char *texto = new char[texto1.length()+1];
memcpy(texto, texto1.c_str(), texto1.length()+1);

cout << "\n\n" << titulo << "\n\n\n" << texto << "\n\n\n";


lista = insere (lista);
}else if(comando.substr(0,8) == "ATUALIZA"){
lista = altera(lista);
}else if (comando.substr(0,6) == "DELETA"){
lista = exclui(lista);
}else if (comando.substr(0,9) == "SELECIONA"){
imprime(lista);
}else
cout << " Comando invalido!\n\n";
}
system ("pause");
return(0);
}



19. Re: arquivo txt em lista

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/05/2015 - 21:45h

Nossa!

Por que utilizar char's em vez de string???
Veja como ficou mais bonito =D
E, por favor, não utilize system para coisas "inuteis", tipo, "cls" do windows. Se for postar código, pelo menos retire essa linha...

E coloque o código entre [code]"código"[/code]


#include <iostream>

int incremento = 1;
using namespace std;

struct lista {
int codigo;
string titulo;
string texto;
struct lista *prox;
};

typedef struct lista *Lista;


Lista inicializa(void) {
return NULL;
}

Lista insere (Lista p,string titulo ) {
Lista novo = (Lista)malloc(sizeof(lista));
Lista aux = p;
Lista aux2 = aux;

novo->codigo = incremento;
incremento++;

getchar();
//cout <<" Digite um titulo: ";
//gets(novo->titulo);
//cout << " Digite um texto : ";
//gets(novo->texto);

novo->titulo = titulo;
novo->prox = NULL;

if(aux == NULL)

return novo;

else {
while(aux->prox != NULL)
aux = aux->prox;
aux->prox = novo;
return p;

}
}

void imprime(Lista p) {
Lista aux = p;
if(p == NULL) {
cout << " Lista vazia\n";
return ;
}
while(aux != NULL) {
cout << " Codigo: " << aux->codigo;
cout << "\n";
cout << " Titulo: " << aux->titulo << "\n Texto: " << " " << aux->texto;
cout << "\n\n";

aux = aux->prox;
}
}

bool vazia (Lista* l) {
return(l == NULL);
}

Lista altera (Lista l) {
Lista ant = NULL;
Lista p = l;

int codigo;
char titulo[101], titulo2[501];
cout << " Digite o codigo que deseja alterar: ";
cin >> codigo;

while(p != NULL && p->codigo != codigo) {
ant = p;
p = p->prox;
}
if(p == NULL) {
cout << " Comando nao encontrado";
return l;
}

cout << " Codigo encontrado: ";
cout << " Codigo: " << codigo << "\n" << " " << p->titulo << p->texto;
cout << "\n\n";
cout << " Digite um novo titulo: ";
getchar();
cin >> p->titulo;
cout << " Digite um novo texto : ";
cin >> p->texto;
return l;
}

Lista exclui (Lista l) {
Lista ant = NULL;
Lista p = l;

int codigo;
cout << " Digite o codigo que deseja remover: ";
cin >> codigo;

while(p != NULL && p->codigo != codigo) {
ant = p;
p = p->prox;
}
if(p == NULL)
return l;
if(ant == NULL) {
l = p->prox;
} else {
ant->prox = p->prox;
}
free(p);
return l;
}

int main(void) {
Lista lista = inicializa();

string comando;
string titulo1;
string texto1;
int i,j,k,tam,tam2;

cout << "\n\t\t ANOTAI\n\n\n";

while(comando.substr(0,4) != "SAIR") {
//cout << "\n 1 - INSERE \n 2 - ATUALIZA \n 3 - DELETA \n 4 - SELECIONA \n 0 - SAIR\n\n";
cout << "\n Linha de comando: ";
getline(cin, comando);
if ( comando.substr(0,6) == "INSERE") {
i = comando.find("(") +1;
j = comando.find(",");
k = comando.find(")");
tam =j-i;
tam2 = k - (j + 1);
titulo1 = comando.substr(i,tam);
texto1 = comando.substr(j+1,tam2);
cout << "(" << titulo1 << " " << texto1 <<")" << "\n";

// Serio, Pra que?
/*char *titulo = new char[titulo1.length()+1];
memcpy(titulo, titulo1.c_str(), titulo1.length()+1);

char *texto = new char[texto1.length()+1];
memcpy(texto, texto1.c_str(), texto1.length()+1);*/


lista = insere (lista,titulo1);
} else if(comando.substr(0,8) == "ATUALIZA") {
lista = altera(lista);
} else if (comando.substr(0,6) == "DELETA") {
lista = exclui(lista);
} else if (comando.substr(0,9) == "SELECIONA") {
imprime(lista);
} else
cout << " Comando invalido!\n\n";
}
cout << "Pressione Enter para Continuar...\n";
cin.get();
return(0);
}



Espero ter ajudado

[]'s

T+

--

Dr. quanto tempo de vida eu tenho?
- 15 minutos.
E o que o Sr. pode fazer por mim?
- No máximo, um miojo. = )




20. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 21:54h


tá dando bug.


21. Re: arquivo txt em lista

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/05/2015 - 21:58h

RBCOL escreveu:


tá dando bug.


Seja mais especifico.

[]'s

T+

--

Dr. quanto tempo de vida eu tenho?
- 15 minutos.
E o que o Sr. pode fazer por mim?
- No máximo, um miojo. = )




22. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 22:01h


agora não consigo inserir o texto.


23. Re: arquivo txt em lista

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/05/2015 - 22:18h

Olha, esse código já está uma gambiarra. Tentar concertar pode que dê e pode que não dê.

Recomendo reescrever o código do zero, e tente não cometer esses falhas novamente.

[]'s

T+

--

Dr. quanto tempo de vida eu tenho?
- 15 minutos.
E o que o Sr. pode fazer por mim?
- No máximo, um miojo. = )




24. Re: arquivo txt em lista

Ronilson Brunhara
RBCOL

(usa Outra)

Enviado em 23/05/2015 - 22:20h


ok, vou tentar, obrigado.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts