6
6
import java .io .FileWriter ;
7
7
import java .io .IOException ;
8
8
import java .util .ArrayList ;
9
+ import java .util .List ;
9
10
10
11
import javax .swing .JOptionPane ;
11
12
@@ -158,10 +159,112 @@ public void listarAlumno() {
158
159
159
160
// --------------------------------------------------------------------------------------------------
160
161
// método para MODIFICAR alumno
162
+ public void modificarAlumno () {
163
+ // Leer el archivo de texto y almacenar los datos en una estructura de datos
164
+ ArrayList <String > lineas3 = new ArrayList <>();
165
+ try {
166
+ BufferedReader br3 = new BufferedReader (new FileReader ("alumnos.txt" ));
167
+ String linea3 ;
168
+
169
+ while ((linea3 = br3 .readLine ()) != null ) {
170
+ lineas3 .add (linea3 + "\n " );
171
+ }
172
+
173
+ br3 .close ();
174
+ } catch (IOException e ) {
175
+ e .printStackTrace ();
176
+ return ;
177
+ }
178
+
179
+ // se define una variable booleana para manejar el hallazgo de la busqueda
180
+ boolean encontrado = false ;
181
+
182
+ // ingreso el término a buscar
183
+ String aBuscar ;
184
+ aBuscar = JOptionPane .showInputDialog ("Ingrese el nombre o apellido o email o DNI a buscar" );
185
+
186
+ // recorro el arrayList identificando lineas
187
+ for (int a = 0 ; a < lineas3 .size (); a ++) {
188
+ System .out .println ("Linea: " + a + " - " + lineas3 .get (a ));
189
+
190
+ // transformo el contenido de 'linea3' en una secuencia de elementos
191
+ String oracion = lineas3 .get (a ).toString ();
192
+ //se borran los espacios en blanco
193
+ oracion = oracion .replaceAll (" " , "" );
194
+
195
+ // separo los elementos de la cadena en elementos individuales para buscarlos,
196
+ // ubicandolos dentro de un arrayList
197
+ String [] terminos = oracion .split ("," );
198
+ System .out .println ("terminos: " +terminos );
199
+
200
+ // vuelvo a false el elemento de busqueda antes de cada ciclo
201
+ encontrado = false ;
202
+
203
+ // comparo el término de búsqueda con los elementos del arrayList anterior
204
+
205
+ for (String elemento : terminos ) {
206
+ if (elemento .equals (aBuscar )) {
207
+ encontrado = true ;
208
+ }
209
+ }
210
+ // si el elemento buscado se encuentra: se notifica, se muestra el registro
211
+ // completo. Luego se sigue recorriendo otros registros buscando nuevas
212
+ // coincidencias
213
+ if (encontrado ) {
214
+ System .out .println ("El término " + aBuscar + " se ha encontrado" );
215
+ JOptionPane .showMessageDialog (null , "El término " + aBuscar + " se ha encontrado" , "Fin de la búsqueda" ,
216
+ JOptionPane .ERROR_MESSAGE );
217
+ JOptionPane .showMessageDialog (null , "Los datos del registro son " + "\n " + "(El número inicial es el «registro»)" + "\n " +a +"- " + lineas3 .get (a ),
218
+ "Fin de la búsqueda" ,
219
+ JOptionPane .ERROR_MESSAGE );
220
+
221
+ //ingreso del texto que se modifica
222
+ String loNuevo =JOptionPane .showInputDialog ("Aquí se puede modificar el elemento buscado «" +aBuscar +"» por uno nuevo" );
223
+ System .out .println (lineas3 );
224
+
225
+ //String[] elemento.set(a,loNuevo);
226
+ System .out .println (lineas3 );
227
+
228
+
229
+
230
+ }
231
+
232
+ }
233
+ // Si se completó toda la busqueda sin ninguna coincidencia, se muestra un
234
+ // mensaje
235
+ if (encontrado ) {
236
+
237
+ } else {
238
+ JOptionPane .showMessageDialog (null , "El término " + aBuscar + " NO se ha encontrado" , "Fin de la búsqueda" ,
239
+ JOptionPane .ERROR_MESSAGE );
240
+ }
241
+
242
+ // Escribir las líneas restantes de vuelta al archivo de texto
243
+ try {
244
+ BufferedWriter bw3 = new BufferedWriter (new FileWriter ("alumnos.txt" ));
245
+
246
+ for (String linea : lineas3 ) {
247
+ bw3 .write (linea );
248
+ }
249
+
250
+ bw3 .close ();
251
+
252
+ System .out .println ("La línea ha sido modificada en el archivo." );
253
+ JOptionPane .showMessageDialog (null , "La linea ha sido modificada en el archivo." , "Acción realizada" ,
254
+ JOptionPane .ERROR_MESSAGE );
255
+ } catch (IOException e ) {
256
+ e .printStackTrace ();
257
+ }
258
+
259
+ }
260
+
161
261
162
262
// --------------------------------------------------------------------------------------------------
163
263
// método para BUSCAR alumno
164
264
265
+ private void set (int a , String loNuevo ) {
266
+ }
267
+
165
268
public void buscarAlumno () {
166
269
// Leer el archivo de texto y almacenar los datos en una estructura de datos
167
270
ArrayList <String > lineas3 = new ArrayList <>();
@@ -192,6 +295,7 @@ public void buscarAlumno() {
192
295
193
296
// transformo el contenido de 'linea3' en una secuencia de elementos
194
297
String oracion = lineas3 .get (a ).toString ();
298
+ //se borran los espacios en blanco
195
299
oracion = oracion .replaceAll (" " , "" );
196
300
197
301
// separo los elementos de la cadena en elementos individuales para buscarlos,
@@ -214,7 +318,7 @@ public void buscarAlumno() {
214
318
System .out .println ("El término " + aBuscar + " se ha encontrado" );
215
319
JOptionPane .showMessageDialog (null , "El término " + aBuscar + " se ha encontrado" , "Fin de la búsqueda" ,
216
320
JOptionPane .ERROR_MESSAGE );
217
- JOptionPane .showMessageDialog (null , "Los datos del registro son " + "\n " + lineas3 .get (a ),
321
+ JOptionPane .showMessageDialog (null , "Los datos del registro son " + "\n " + "(El número inicial es el «registro»)" + " \n " + a + "- " + lineas3 .get (a ),
218
322
"Fin de la búsqueda" ,
219
323
JOptionPane .ERROR_MESSAGE );
220
324
@@ -230,6 +334,7 @@ public void buscarAlumno() {
230
334
JOptionPane .ERROR_MESSAGE );
231
335
}
232
336
337
+
233
338
}
234
339
235
340
// --------------------------------------------------------------------------------------------------
0 commit comments