C/Visual C - urgente, modificar una variable PARA MAÑANA

 
Vista:

urgente, modificar una variable PARA MAÑANA

Publicado por Cris (44 intervenciones) el 11/04/2006 14:40:55
hola muy buenas a todos. TEngo el siguiente programa:
Quiero modificar el valor de una variable especifica de un fichero,
para ello la busco hasta situarme en ella, muestro la linea por pantalla:
<FONT FACE="Comic Sans Ms" COLOR="Red" Size="9"><B><I>
De esta linea kiero modificar solo FONT FACE y para ello muestro el contenido :
COmic Sans Ms, pido al usuario la introduccion del nuevo valor
y recorro el fichero hasta posicionarme de nuevo en esa variable pero cambio el contenido
por el nuevo.
Todo esto ya esta programado, lo unico que no me sale es como hacer lo ultimo, es decir:
tipo de letra //variable a modificar
<FONT FACE="Comic Sans Ms" COLOR="Red" Size="9"><B><I> //linea donde se encuentra
Comic Sans Ms //contenido de variable
Introduce el nuevo valor: arial

<FONT FACE="arial" COLOR="Red" Size="9"><B><I> *********ESto no me sale*******

El codigo para hacer esto es:menu_texto, modificar_letra, pedir_texto, REESCRIBIR_TExTO
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

void texto::menu_texto(string line_aux)
{
int opc;
do
{
system("cls");
cout << " MENU TEXTO" << endl;
cout << "1. Tipo de letra" << endl;
cout << "2. Tamano" << endl;
cout << "3. Color" << endl;
cout << "4. Subrayado/Negrita/Cursiva" << endl;
cout << "5. Leyenda" << endl;
cout << "6. Salir" << endl;
cout << "Elije la opcion que deseas modificar el texto" << endl;

cin >> opc;

const int SIZE=2000;

char *line=new char[2000];
string copy;

copy="<FONT FACE";

ifstream in ("PaginaPrincipal1.html");

switch(opc)

{
case 1:
cout << "Tipo de Letra" << endl;

while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{
break;
}
}
cout << line << endl;
int u;
do
{
in.getline(line,SIZE);

u=0;
for(int i=0;i<copy.size();++i)
if(copy.at(i)!=line[i])
break;
else
u++;
}while(u<10);

cout << line << endl;
fflush(stdin);
cin.get();

modificar_letra(line);
pedir_texto("tipoletra",1);
reescribir_texto(line);
break;

case 2:
cout << "Tamano" << endl;
while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{
break;
}
}
cout <<line<<endl;
do
{
in.getline(line,SIZE);

u=0;
for(int i=0;i<copy.size();++i)
if(copy.at(i)!=line[i])
break;
else
u++;
}while(u<10);

cout << line << endl;
fflush(stdin);
cin.get();

modificar_letra(line);
pedir_texto("Tamano", 2);
reescribir_texto(line);

break;
case 3:
cout << "Color" << endl;
while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{

break;
}
}
cout <<line<<endl;
do
{
in.getline(line,SIZE);

u=0;
for(int i=0;i<copy.size();++i)
if(copy.at(i)!=line[i])
break;
else
u++;
}while(u<10);

cout << line << endl;
fflush(stdin);
cin.get();
modificar_letra(line);
pedir_texto("Color", 3);
reescribir_texto(line);
break;
case 4:
cout << "Subrayado" << endl;
while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{
break;
}
}
cout <<line<<endl;
do
{
in.getline(line,SIZE);

u=0;
for(int i=0;i<copy.size();++i)
if(copy.at(i)!=line[i])
break;
else
u++;
}while(u<10);

cout << line << endl;
fflush(stdin);
cin.get();
modificar_letra(line);
pedir_texto("Subrayado", 4);
reescribir_texto(line);
break;
case 5:
cout << "Leyenda" << endl;
while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{
break;
}
}
cout <<line<<endl;
do
{
in.getline(line,SIZE);

u=0;
for(int i=0;i<copy.size();++i)
if(copy.at(i)!=line[i])
break;
else
u++;
}while(u<10);
in.getline(line,SIZE);
cout << line << endl;

fflush(stdin);
cin.get();
modificar_letra(line);
pedir_texto("Leyenda", 5);
reescribir_texto(line);
break;
}
}while(opc!=6);

}

string texto::modificar_letra(string a)
{

string tipo="FACE=\"";
tipoletra="";
string b;

int i=0;
int t=0;
do{
if (a.at(i)!=tipo[t])
{
++i;
t=0;
}
else
{
++t;
++i;
}
}while (t<6);
fflush(stdin);
cin.get();

while (a.at(i)!='"')
{
b=a.at(i);
tipoletra.append(b);
++i;
}
cout <<tipoletra<<endl;
fflush(stdin);
cin.get();


//COLOR//
tipo="COLOR=\"";
string colour="";
t=0;
do{
if (a.at(i)!=tipo[t])
{
++i;
t=0;
}
else
{
++t;
++i;
}
}while (t<7);
fflush(stdin);
cin.get();

while (a.at(i)!='"')
{
b=a.at(i);
colour.append(b);
++i;
}
cout<<colour<<endl;
fflush(stdin);
cin.get();

//tamaño
tipo="Size=\"";
string tamano="";

t=0;

do{
if(a.at(i)!=tipo[t])
{
++i;
t=0;
}
else
{
++t;
++i;
}
}while (t<6);
fflush(stdin);
cin.get();

while (a.at(i)!='"')
{
b=a.at(i);
tamano.append(b);
++i;
}
cout <<tamano<<endl;
fflush(stdin);
cin.get();

// SUBRAYADO//
string subrayo="";
for(i=a.size()-1;i<a.size()-10;--i)
{
if (a.at(i)=='B' || a.at(i)=='S' || a.at(i)=='I')
{
b=a.at(i-1);
subrayo.append(b);
b=a.at(i);
subrayo.append(b);
b=a.at(i+1);
subrayo.append(b);
}
}
cout<<subrayo<<endl;
fflush(stdin);
cin.get();

return("Hola");
}

void texto::pedir_texto (string a, int b)
{
string letras;
string tamanio;
string colores;
string ley;

switch (b)
{
case 1:{
cout <<"introduce "<<a <<" nueva"<<endl;
cin>>letras;
}
break;

case 2: {
cout <<"introduce "<<a<<" nueva"<<endl;
cin>>tamanio;
}
break;

case 3: {
cout <<"introduce "<<a<<" nueva"<<endl;
cin>>colores;
}
break;

case 4: {/*
cout <<"introduce "<<a<<" nueva<<endl;
cin>>S;
*/
}
break;
case 5: {
cout <<"introduce "<<a<<" nueva"<<endl;
cin>>ley;
}
break;
}

}

void texto::reescribir_texto (string c)**************ESTO NO SE MODIFICAR LOS VALORES****
{
const int SIZE =2000;
char *line =new char [SIZE];
string line_aux;

ifstream in ("PaginaPrincipal1.html");

while (in.getline(line, SIZE)!=NULL)
{
if (line==line_aux)
{
break;
}
}
cout<<line<<endl;
fflush(stdin);
cin.get();

string a="<FONT FACE";
int b;
do
{
in.getline(line,SIZE);
b=0;
for (int i=0; i<a.size();++i)
if (a.at(i)!=line[i])
break;
else
b++;
} while (b<10);

cout << line << endl;
fflush(stdin);
cin.get();

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

nunca te acostaras sin saberr una cosa mas

Publicado por nelek (818 intervenciones) el 11/04/2006 15:17:46
Siento que mi post no sea para poder responderte, pero es que me ha parecido curioso como aumentas las variables de 1 en 1. Mira que llevo años programando y es la primera vez que veo "++i", yo siempre he visto y usado "i++"

Nunca te acostaras sin saber una cosa mas.

En cuanto a tu problema, espero que alguien pueda contestarte y resolverte la duda, mucha suerte con tu proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar