FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Borrar lineas de txt
Hola tengo un archivo txt el cual contiene varios datos de distintos usuarios por ejemplo.
dni1 nombre1 apellido1 dni2 nombre2 apellido2 Tengo lo que se encargar de buscar y mostrar en los labels, me falta que una vez que busco a cierta persona la elimine del txt. Sin que me queden espacios en blancos, si quisiera eliminar al dni1, tendria que quedarme asi el txt: dni2 nombre2 apellido2 Código:
TStrings *TS = new TStringList; TS->LoadFromFile("datos.txt"); void __fastcall TfCliente::MostrarRegistro(const int pp,const int c) { lblCliente->Caption = "Datos de "+TS->Strings[pp+1]+" "+TS->Strings[pp+2]; lblDni->Caption = TS->Strings[pp]; lblNombre->Caption = TS->Strings[pp+1]; lblApellido->Caption = TS->Strings[pp+2]; lblDireccion->Caption = TS->Strings[pp+3]; lblMail->Caption = TS->Strings[pp+4]; lblTelefono->Caption = TS->Strings[pp+5]; lblCelular->Caption = TS->Strings[pp+6]; lblEdad->Caption = TS->Strings[pp+7]; lblNacimiento->Caption = TS->Strings[pp+8]; lblNumeroCliente->Caption = c; } void __fastcall TfCliente::btnBuscarClick(TObject *Sender) { if (editBuscar->Text != ""){ int docu=0; int c; for(int i=0; i< TS->Count; i+=9) { if (Trim(editBuscar->Text) == Trim(TS->Strings[i])) { c=TS->Count/9; MostrarRegistro(i,c); editBuscar->Text = ""; break;} else { docu+=9; if (docu == TS->Count) { Application->MessageBox("El cliente no existe.","AVISO", MB_OK | MB_ICONEXCLAMATION); editBuscar->Text = ""; lblCliente->Caption = ""; lblDni->Caption = ""; lblNombre->Caption = ""; lblApellido->Caption = ""; lblDireccion->Caption = ""; lblMail->Caption = ""; lblTelefono->Caption = ""; lblCelular->Caption = ""; lblEdad->Caption = ""; lblNacimiento->Caption = ""; lblNumeroCliente->Caption = ""; } } } if (TS->Count == 0){ Application->MessageBox("El cliente no existe.","AVISO", MB_OK | MB_ICONEXCLAMATION); } } else { Application->MessageBox("Ingrese un numero de documento.","AVISO", MB_OK | MB_ICONEXCLAMATION); } } void __fastcall TfCliente::btnEliminarClick(TObject *Sender) { if (lblApellido->Captiont != ""){ const int result = Application->MessageBox(("Desea eliminar al cliente " + lblApellido->Caption+" "+lblNombre->Caption+" ?").c_str() ,"AVISO", MB_YESNO | MB_ICONQUESTION); switch (result) { case IDYES: Application->MessageBox("El cliente fue eliminado correctamente.","Cliente eliminado", MB_OK); break; case IDNO: break; } } } |
#2
|
||||
|
||||
Muy bien, y ¿el problema?
|
#3
|
||||
|
||||
Eliminar los datos del txt, de la persona que busco.
|
#4
|
||||
|
||||
Hola eennzzoo
Código:
void DeleteData(TStrings *TS, String dni) { int ix = TS->IndexOf(dni); if (ix != -1) { if (MessageBox(0,"¿ Desea borrar los datos ?","",MB_YESNO)==IDYES) { TS->Delete(ix+2); TS->Delete(ix+1); TS->Delete(ix); } } else MessageBox(0,"No se encontró una persona con ese DNI","", MB_OK); } Código:
void __fastcall TForm1::btnDeleteClick(TObject *Sender) { DeleteData(Lista, EditDNI->Text); }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Hola ennzzoo.
Cita:
Para evitar confusiones te adjunto el código fuente de un ejemplo operativo, así podrás revisarlo con tranquildad. Solo descomprimilo en una carpeta, contiene el archivo de texto (file.txt).
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 25-09-2014 a las 02:46:14. |
#7
|
||||
|
||||
Seguramente es lo primero
|
#8
|
||||
|
||||
Cita:
Quizas eennzzoo está buscando un ajuste como este: Código:
void DeleteData(TStrings *TS, String dni) { int ix = TS->IndexOf(dni); if (ix != -1) { if (MessageBox(0,"¿ Desea borrar los datos ?","",MB_YESNO)==IDYES) { TS->Delete(ix+2); TS->Delete(ix+1); TS->Delete(ix); Lista->SaveToFile(ExtractFilePath(Application->Name)+"file.txt"); } } else MessageBox(0,"No se encontró una persona con ese DNI","", MB_OK); } |
#9
|
||||
|
||||
Pues sí, releyéndolo, parece que quiere borrarlo del fichero.
|
#10
|
||||
|
||||
Cita:
Si, realmente no lo interpreté de ese modo. No pensé que intentara borrar un dato del archivo de texto con el método Delete... seguramente por eso desestimé el resto del párrafo. Creo entonces que vale aclararle a eennzzoo que una vez usado el método LoadFromFile, los datos del archivo de texto cargados en Lista residen en la memoria y cualquier acción que se realice sobre Lista se perderá finalizar si previamente no se salvan con el método SaveFromFile. Se pueden tomar dos caminos:
Código:
void __fastcall TForm1::FormDestroy(TObject *Sender) { Lista->SaveToFile('tu_archivo.txt'); delete Lista; }
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
||||
|
||||
Si eso quiero, borrarlo del archivo. Mañana lo pruebo y les digo. Gracias.
|
#12
|
||||
|
||||
Cita:
__________________
▶ https://www.facebook.com/riverplateoficial ◀ |
#13
|
||||
|
||||
Hola eennzzoo.
También recuerda que usando la línea Código:
TS->SaveToFile(ExtractFilePath(Application->Name)+"file.txt"); Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
||||
|
||||
Cita:
__________________
▶ https://www.facebook.com/riverplateoficial ◀ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dibujar y borrar lineas con el movimiento de labels | Acanol | Gráficos | 7 | 29-05-2006 10:50:43 |
Borrar lineas detalle al borrar registro maestro | akinom38 | Conexión con bases de datos | 3 | 11-01-2006 10:38:07 |
Borrar Lineas en Word con delphi | Renees | Varios | 0 | 21-10-2005 15:46:39 |
Borrar lineas | Luli | Gráficos | 2 | 29-07-2005 15:21:28 |
Luego de borrar lineas en un memo... | pablo | OOP | 3 | 26-04-2005 01:03:02 |
|