elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Top 20 herramientas Hacking más populares de 2020


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda principiante boton que no se puede clickear en: 22 Abril 2012, 21:42 pm
ahi va muchas gracias... 2 cosas mas y no jodo
1 - Como hago para que no se le pueda hacer "focus" o ponerle a "gotfocus" que inmediatamente le de focus a otro boton

2 - Recomiendenme un manual, libro, o cursito online. yo ya se algo de C# pero nada de visual studio

muchas gracias ! :D
2  Programación / .NET (C#, VB.NET, ASP) / Re: Ayuda principiante boton que no se puede clickear en: 22 Abril 2012, 20:46 pm
ok pero como hago que para en vez de declararle yo un valor a x o a y, ponerle el valor de las coordenadas actuales?
algo asi como
dim x as integer
x= button.location x
o algo asi, ni idea porque es la primera vez que uso visual

 yo nunca dije que era visual basic 6
3  Programación / .NET (C#, VB.NET, ASP) / Ayuda principiante boton que no se puede clickear en: 22 Abril 2012, 20:07 pm
Hola, que tal, les cuento que recien empiezo con vb, estoy usando v studio 2003 porque es el que usamos en el instituto.


quiero hacer un formulario con un boton en el cual cuando le apuntes con el mouse para clickearlo se mueva hacia arriba hasta cierto punto, pero la idea es que solo se mueva cuando le vas a apuntar o pasar el mouse por encima, para eso use MOUSE MOVE, logré que se mueva hacia arriba hasta ese cierto punto, pero si voy y dejo el mouse posicionado en el punto mas alto al que se mueve el boton, el boton no para de moverse... debo de tener un error con el while.
probe poner el while de otra forma y con un if pero solo se mueve una vez y eso no sirve, se tiene que mover siempre que se lo quiera apuntar con el mouse asi no se puede clickear... les dejoj el codigo

Código
  1.    Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
  2.        Dim x As Integer, y As Integer
  3.  
  4.        x = 32
  5.        y = 272
  6.  
  7.        While (y > 220)
  8.            y = y - 3
  9.  
  10.            Button1.Location() = New Point(x, y)
  11.        End While
  12.  
  13.    End Sub
4  Programación / Programación C/C++ / Duda tecnica sobre entrega de un programa YA HECHO en: 1 Noviembre 2011, 18:06 pm
Hola, que tal, les cuento, tengo un programa que es un diccionario, ya lo tengo terminado, el tema es que en la letra del "proyecto" me piden que entregue impresas las siguientes cosas:
diccionario de variables
diagrama de funciones

y en si, no entiendo exactamente a que se refieren con ello
5  Programación / Programación C/C++ / Re: [Ayuda] Eliminar entradas en un binario en: 31 Octubre 2011, 16:25 pm
Solucionado, modifique bastante el codigo, en la parte de escritura le puse un solo while y que escribiera en el otro archivo si y solo si "if(strcmp(palabra,aux.palabra)!=0)" entonces si por ejemplo quiero eliminar casa, y la palabra casa esta escrita 2 veces, la elimina las 2 veces que esta escrita y despues la condicion para que se cumpla el while es que una variable llamada posicion que se suma 1 cada vez que se ejecuta el fread, sea menor que la funcion total(); entonces no me da mas ese error que me repetia la ultima palabra

:D

gracias, me ha sido de mucha ayuda para hacer mim propio codigo...
se que esto son cosas sencillas pero por algo se empieza :D
6  Programación / Programación C/C++ / Re: [Ayuda] Eliminar entradas en un binario en: 31 Octubre 2011, 16:09 pm
El unico error que encontre es que ingresa 2 veces la ultima palabra del diccionario, estoy tratando de arreglarlo, gracias
7  Programación / Programación C/C++ / Re: [Ayuda] Eliminar entradas en un binario en: 31 Octubre 2011, 12:33 pm
Hola, bueno, muchas gracias, ahora en cuanto pueda lo pruebo y si hay algun pequeño error se corrige rapido.
Pasa que no sabia que se podian tener 2 archivos abiertos al mismo tiempo, me habian dicho que no, y tampoco conocia la funcion rename.
gracias
8  Programación / Programación C/C++ / [Ayuda] Eliminar entradas en un binario en: 30 Octubre 2011, 17:59 pm
Hola, que tal, yo de nuevo molestando, tengo un problema con un progrmita que tengo. tengo este codigo fuente que voy a poner a continucion, pero no me funciona bien la funcion "baja()" si me pueden ayudar estaria muy agradecido


Código
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #include <ctype.h>
  6.  
  7.  
  8. void alta();
  9. void baja();
  10. void modificar();
  11. void listarAnt();
  12. void listarPar();
  13. //void listarTodo();
  14. void consultar();
  15. void subMenu();
  16. int total();
  17.  
  18.  
  19. #define DICCIONARIO "diccio.bin"
  20.  
  21. struct dato{
  22. char palabra[20];
  23. char sinonimo1[20],sinonimo2[20],sinonimo3[20];
  24. char antonimo[20];
  25. char paronimo[20];
  26. }diccionario;
  27.  
  28. FILE *archivo = NULL;
  29.  
  30. void main(){
  31. int opcion=0;
  32. char salir='n';
  33. FILE*archivo;
  34. textbackground(0);
  35. archivo=fopen(DICCIONARIO,"ab");
  36. fclose(archivo);
  37.  
  38. while (salir!='s'){
  39. clrscr();
  40. textcolor(2);
  41. printf("\n   DICCIONARIO \n");
  42. printf("1) Ingresar \n");
  43. printf("2) Eliminar \n");
  44. printf("3) Modificar \n");
  45. printf("4) Consultar \n");
  46. printf("5) Listar \n");
  47. printf("0) Salir \n");
  48. opcion=getch();
  49. switch(opcion){
  50. case '1': alta();
  51. break;
  52. case '2': baja();
  53. break;
  54. case '3': modificar();
  55. break;
  56. case '4': consultar();
  57. break;
  58. case '5': subMenu();
  59. break;
  60. case '0': printf("\n ¨Esta seguro que desea salir? (s/n)");
  61. salir=tolower(getch());
  62. clrscr();
  63. break;
  64. default:printf("\n opcion incorrecta");
  65. getch();
  66. clrscr();
  67. break;
  68. }//fin switch
  69. }//fin while
  70. }//fin void main
  71.  
  72.  
  73.  
  74. void subMenu(){
  75. clrscr();
  76. int opc;
  77. char salir='n';
  78.  
  79. archivo=fopen(DICCIONARIO,"rb");
  80. if(archivo){
  81.  
  82. while(salir!='s'){
  83. clrscr();
  84. printf("\n Listar Palabras existentes \n");
  85.  
  86. printf("\n1) Listar antonimos");
  87. printf("\n2) Listar paronimos");
  88. printf("\n3) Listar: sinonimos, antonimos y paronimos");
  89. printf("\n0) Volver al menu principal\n");
  90.  
  91. opc=getch();
  92. clrscr();
  93. switch(opc){
  94.  
  95. case '1': listarAnt();
  96. break;
  97. case '2': listarPar();
  98. break;
  99. case '3': //listarTodo();
  100. //salir='s';
  101. break;
  102. case '0': salir='s';
  103. break;
  104. default:printf("\n OPCION INCORRECTA");
  105. getch();
  106. break;
  107. }//Fin switch submenu
  108. }//fin while
  109. }//fin if
  110. else{
  111. printf("\n OCURRIO UN ERROR AL ABRIR EL ARCHIVO");
  112. }//fin else
  113. }//fin subMenu
  114.  
  115.  
  116. int total(){
  117. clrscr();
  118. int total;
  119. FILE*archivo;
  120. archivo=fopen(DICCIONARIO,"rb");//abro el archivo diccionario.bin como solo lectura
  121. if(archivo==NULL){
  122. printf("\n Error al abrir el archivo");
  123. fclose(archivo);
  124. }
  125. else{
  126. fseek(archivo,0,SEEK_END);
  127. total=ftell(archivo) / sizeof(struct dato);//divido el tama¤o del archivo entre el tama¤o de la estructura para saber cuantas hay
  128. }
  129. return total;//devuelvo el valor de la variable total(int)
  130. }
  131.  
  132. void alta(){
  133. struct dato aux,aux2;
  134. char opc=' ',confirmar=' ';
  135. int encontrado=0,error=0;
  136.  
  137. clrscr();
  138. memset(&aux,0x00,sizeof(struct dato));
  139. printf("\n Ingresar palabra \n");
  140. printf("\n Palabra: ");
  141. memset(&aux.palabra,0x00,20);
  142. gets(aux.palabra);
  143. archivo=fopen(DICCIONARIO,"rb");
  144. if(archivo!=NULL){
  145. while(encontrado==0 && !feof(archivo)){
  146. if(aux.palabra[0]!='\0'){
  147. fread(&aux2,sizeof(struct dato),1,archivo);
  148. if(strcmp(aux.palabra,aux2.palabra)==0){
  149. ++encontrado;
  150. }
  151. }else{
  152. error=1;
  153. encontrado=99;
  154. }
  155. }//while
  156. clrscr();
  157. if(encontrado==0){
  158. printf("\n ¨Desea ingresar un sinonimo? (s/n)");
  159. opc=' ';
  160.  
  161. opc=tolower(getch());
  162. if(opc=='s'){
  163. clrscr();
  164. printf("\n\n ingrese un sinonimo: ");
  165. gets(aux.sinonimo1);
  166. opc=' ';
  167. clrscr();
  168. printf("\n\n ¨Desea ingresar otro sinonimo? (s/n)");
  169. opc=tolower(getch());
  170. if(opc=='s'){
  171. clrscr();
  172. printf("\n\n ingrese otro sinonimo: ");
  173. gets(aux.sinonimo2);
  174. opc=' ';
  175. clrscr();
  176. printf("\n\n ¨Desea ingresar otro sinonimo? (s/n)");
  177. opc=tolower(getch());
  178. if(opc=='s'){
  179. clrscr();
  180. printf("\n ingrese otro sinonimo: ");
  181. gets(aux.sinonimo3);
  182. opc='n';
  183. }//if3
  184.  
  185. }//if2
  186.  
  187. }//if1
  188.  
  189.  
  190.  
  191. clrscr();
  192. printf("\n Ingrese un antonimo: ");
  193. gets(aux.antonimo);
  194. printf("\n ¨Desea ingresar un paronimo? (s/n) ");
  195. opc=getch();
  196. if(opc=='s'){
  197. printf("\n Ingrese un paronimo: ");
  198. gets(aux.paronimo);
  199. }
  200. clrscr();
  201. printf(" Usted ingreso\n");
  202. printf("\n\n Palabra: %s \n Sinonimos: %s %s %s\n Antonimo: %s\n Paronimo: %s",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3,aux.antonimo,aux.paronimo);
  203. printf("\n\n Esta seguro que desea agregar estos datos al diccionario(s/n)");
  204. confirmar=tolower(getch());
  205. if(confirmar!='s'){
  206. printf("\n\n --------\n\n Los datos no se escribieron en el archivo");
  207. getch();
  208. }//IF
  209. else{
  210. if(confirmar=='s'){
  211. archivo=fopen(DICCIONARIO,"ab");
  212. strlwr(aux.palabra);strlwr(aux.sinonimo1);
  213. strlwr(aux.sinonimo2);strlwr(aux.sinonimo3);
  214. strlwr(aux.antonimo);strlwr(aux.paronimo);
  215. fwrite(&aux,sizeof(struct dato),1,archivo);
  216.  
  217. /*a continuacion lo que se hace es, que si
  218. existen sinonimos, estos se ingresen como palabra,
  219. la que era la palabra y los otros sinonimos
  220. se le ingresen como sinonimo, y el antonimo y paronimo
  221. se le ingresen tambien */
  222.  
  223. if(aux.sinonimo1[0]!='\0'){
  224. memset(&aux2,0x00,sizeof(struct dato));
  225. strcpy(aux2.sinonimo1,aux.palabra);
  226. strcpy(aux2.palabra,aux.sinonimo1);
  227. strcpy(aux2.sinonimo2,aux.sinonimo2);
  228. strcpy(aux2.sinonimo3,aux.sinonimo3);
  229. strcpy(aux2.antonimo,aux.antonimo);
  230. fwrite(&aux2,sizeof(struct dato),1,archivo);
  231. }//if aux sinonimo1
  232. if(aux.sinonimo2[0]!='\0'){
  233. memset(&aux2,0x00,sizeof(struct dato));
  234. strcpy(aux2.sinonimo2,aux.palabra);
  235. strcpy(aux2.palabra,aux.sinonimo2);
  236. strcpy(aux2.sinonimo1,aux.sinonimo1);
  237. strcpy(aux2.sinonimo3,aux.sinonimo3);
  238. strcpy(aux2.antonimo,aux.antonimo);
  239. fwrite(&aux2,sizeof(struct dato),1,archivo);
  240. }//if aux sinonimo2
  241. if(aux.sinonimo3[0]!='\0'){
  242. memset(&aux2,0x00,sizeof(struct dato));
  243. strcpy(aux2.sinonimo3,aux.palabra);
  244. strcpy(aux2.palabra,aux.sinonimo3);
  245. strcpy(aux2.sinonimo2,aux.sinonimo2);
  246. strcpy(aux2.sinonimo1,aux.sinonimo1);
  247. strcpy(aux2.antonimo,aux.antonimo);
  248. fwrite(&aux2,sizeof(struct dato),1,archivo);
  249. }//if aux sinonimo2
  250. fclose(archivo);
  251. }//if
  252. }//else
  253. }//primer if
  254.  
  255.  
  256. }//if encontrado
  257. if(encontrado==1){
  258. clrscr();
  259. printf("\n\n  LA PALABRA YA EXISTE EN EL DICCIONARIO");
  260. getch();
  261. }//encontrado = 1
  262. if(error==1){
  263. clrscr();
  264. printf("\n\n  Error, no ingreso ninguna palabra");
  265. gotoxy(2,8);
  266. printf("\n\n  Presione cualquier tecla para volver al menu principal\n");
  267. getch();
  268. }//error = 1
  269. }//funcion
  270.  
  271.  
  272.  
  273. void consultar(){
  274. struct dato aux;
  275. char palabra[20];
  276. int encontrado=0,ok=0,opc=0;
  277. FILE*archivo;
  278.  
  279. archivo=fopen(DICCIONARIO,"rb");
  280. if(archivo){
  281. fseek(archivo,0,SEEK_END);
  282. if(ftell(archivo)!=0)
  283. ok=1;
  284. fclose(archivo);
  285. }//if archivo
  286. if(ok==1){
  287. memset(&aux,0x00,sizeof(struct dato));
  288. archivo=fopen(DICCIONARIO,"rb");
  289. if(archivo!=NULL){
  290. printf("\n Ingrese la palabra a consultar: ");
  291. memset(&palabra,0x00,20);
  292. scanf("%s",&palabra);
  293. while(encontrado==0 && !feof(archivo)){
  294. fread(&aux,sizeof(struct dato),1,archivo);
  295. if(strcmp(palabra,aux.palabra)==0){
  296. ++encontrado;
  297. }//strcmp
  298. }//while
  299. fclose(archivo);
  300. if(encontrado!=0){
  301. clrscr();
  302. printf("\n ¨Que desea consultar? \n");
  303. printf("\n1) Mostrar todos los sinonimos");
  304. printf("\n2) Mostrar el antonimo");
  305. printf("\n3) Mosrar el paronimo");
  306. printf("\n4) Mostrar todo");
  307. printf("\n0) Volver al menu principal\n");
  308. opc=getch();
  309. switch(opc){
  310. case '1':printf("\n\n Palabra: %s \n Sinonimos: %s %s %s\n ",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3);
  311. getch();
  312. break;
  313. case '2':printf("\n\n Palabra: %s \n Antonimo: %s\n",aux.palabra,aux.antonimo);
  314. getch();
  315. break;
  316. case '3':printf("\n\n Palabra: %s \n Paronimo: %s",aux.palabra,aux.paronimo);
  317. getch();
  318. break;
  319. case '4':printf("\n\n Palabra: %s \n Sinonimos: %s %s %s\n Antonimo: %s\n Paronimo: %s",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3,aux.antonimo,aux.paronimo);
  320. getch();
  321. break;
  322.  
  323. case '0': break;
  324. default:printf("\n OPCION INCORRECTA");
  325. getch();
  326. break;
  327.  
  328. }//switch
  329. }//if encontrado
  330. else{
  331. printf("\n\n LA PALABRA NO EXISTE EN EL DICCIONARIO");
  332. getch();
  333. }//else
  334. }//if archivo!=NULL
  335. else printf("\n ERROR AL ABRIR EL ARCHIVO");
  336.  
  337. }// if ok=1
  338. else printf("\n ERROR AL ABRIR EL ARCHIVO");
  339.  
  340.  
  341. }
  342.  
  343. void listarAnt(){
  344. struct dato aux;
  345. int cont=0;
  346. FILE *archivo;
  347.  
  348. memset(&aux,0x00,sizeof(struct dato));
  349. archivo=fopen(DICCIONARIO,"rb");
  350. if(archivo!=NULL){
  351. fseek(archivo,0,SEEK_SET);
  352. gotoxy(3,2);
  353. printf("P A L A B R A      |");
  354. gotoxy(30,2);
  355. printf("A N T O N I M O\n");
  356. printf("------------------------------------------------|");
  357. gotoxy(1,5);
  358. while(!feof(archivo)){
  359. if(fread(&aux,sizeof(struct dato),1,archivo)){
  360. if(aux.antonimo[0]!='\0'){
  361. printf("\n %15s     |  %15s \n",aux.palabra,aux.antonimo);
  362. printf("------------------------------------------------|");
  363. cont++;
  364. if(cont==7){
  365. printf("\n Presione una tecla para continuar el listado");
  366. getch();
  367. cont=0;
  368. clrscr();
  369. gotoxy(3,2);
  370. printf("P A L A B R A      |");
  371. gotoxy(30,2);
  372. printf("A N T O N I M O\n");
  373. printf("------------------------------------------------|");
  374. gotoxy(1,5);
  375. }
  376. }
  377. }
  378. }
  379. fclose(archivo);
  380. getch();
  381. }
  382. }
  383.  
  384. void listarPar(){
  385. struct dato aux;
  386. int cont=0,salir=1;
  387. FILE *archivo;
  388.  
  389. memset(&aux,0x00,sizeof(struct dato));
  390. archivo=fopen(DICCIONARIO,"rb");
  391. if(archivo!=NULL){
  392. fseek(archivo,0,SEEK_SET);
  393. gotoxy(3,2);
  394. printf("P A L A B R A      |");
  395. gotoxy(30,2);
  396. printf("P A R O N I M O\n");
  397. printf("------------------------------------------------|");
  398. gotoxy(1,5);
  399. salir=1;
  400. while(!feof(archivo) && salir==1){
  401. if(fread(&aux,sizeof(struct dato),1,archivo)){
  402. if(aux.paronimo[0]!='\0'){
  403. printf("\n %15s     |  %15s \n",aux.palabra,aux.paronimo);
  404. printf("------------------------------------------------|");
  405. cont++;
  406. if(cont==7){
  407. printf("\n Presione una tecla para continuar el listado, o 0 (cero) para salir");
  408. getch();
  409. cont=0;
  410. clrscr();
  411. gotoxy(3,2);
  412. printf("P A L A B R A      |");
  413. gotoxy(30,2);
  414. printf("P A R O N I M O\n");
  415. printf("------------------------------------------------|");
  416. gotoxy(1,5);
  417. }
  418. }
  419. }
  420. }
  421. fclose(archivo);
  422. getch();
  423. }
  424. }
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. void modificar(){
  435. char opc='n';
  436. struct dato aux;
  437. FILE *archivo;
  438. archivo=NULL;
  439. char palabra[20];
  440. int encontrado=0,ok=0,select=0,pos=0;
  441. clrscr();
  442. archivo=fopen(DICCIONARIO,"rb");
  443. if(archivo!=NULL){
  444. fseek(archivo,0,SEEK_END);
  445. if(ftell(archivo)!=0)
  446. ok=1;
  447. fclose(archivo);
  448. }
  449. if(ok==1){
  450. memset(&aux,0x00,sizeof(struct dato));
  451. archivo=fopen(DICCIONARIO,"rb");
  452. if(archivo!=NULL){
  453. gotoxy(20,2);
  454. printf("MODIFICAR PALABRAS\n");
  455. printf("\n Ingrese la palabra a modificar: ");
  456. scanf("%s",&palabra);
  457. strlwr(palabra);
  458. pos=0;
  459. while(encontrado==0 && !feof(archivo)){
  460. fread(&aux,sizeof(struct dato),1,archivo);
  461. if(strcmp(palabra,aux.palabra)!=0)
  462. pos++;
  463. if(strcmp(palabra,aux.palabra)==0){
  464. encontrado=1;
  465. }//strcmp
  466. }//while
  467.  
  468. if(encontrado==1){
  469. fclose(archivo);
  470. clrscr();
  471. gotoxy(2,2);
  472. printf("Palabra:    %s",aux.palabra);
  473. gotoxy(2,4);
  474. printf("Sinonimo 1: %s",aux.sinonimo1);
  475. gotoxy(2,6);
  476. printf("Sinonimo 2: %s",aux.sinonimo2);
  477. gotoxy(2,8);
  478. printf("Sinonimo 3: %s",aux.sinonimo3);
  479. gotoxy(2,10);
  480. printf("Antonimo:   %s",aux.antonimo);
  481. gotoxy(2,12);
  482. printf("Paronimo:   %s",aux.paronimo);
  483. gotoxy(2,14);
  484. printf("Ingrese un campo a modificar");
  485. gotoxy(2,16);
  486. printf("1) Palabra");
  487. gotoxy(2,17);
  488. printf("2) Primer sinonimo");
  489. gotoxy(2,18);
  490. printf("3) Segundo sinonimo");
  491. gotoxy(2,19);
  492. printf("4) Tercer sinonimo");
  493. gotoxy(2,20);
  494. printf("5) Antonimo");
  495. gotoxy(2,21);
  496. printf("6) Paronimo");
  497. gotoxy(2,22);
  498. printf("9) Salir sin guardar");
  499. gotoxy(2,23);
  500. printf("0) SALIR Y GUARDAR");
  501. gotoxy(2,25);
  502. printf("OPCION: ");
  503. select=getch();
  504. while(opc!='s'){
  505. switch(select){
  506. case'1':gotoxy(14,2);
  507. printf("                            ");
  508. gotoxy(14,2);
  509. memset(aux.palabra,0x00,20);
  510. scanf("%s",&aux.palabra);
  511. gotoxy(11,25);
  512. select=getch();
  513. break;
  514. case'2':gotoxy(14,4);
  515. printf("                            ");
  516. gotoxy(14,4);
  517. memset(aux.sinonimo1,0x00,20);
  518. scanf("%s",&aux.sinonimo1);
  519. gotoxy(11,25);
  520. select=getch();
  521. break;
  522. case'3':gotoxy(14,6);
  523. printf("                            ");
  524. gotoxy(14,6);
  525. memset(aux.sinonimo2,0x00,20);
  526. scanf("%s",&aux.sinonimo2);
  527. gotoxy(11,25);
  528. select=getch();
  529. break;
  530. case'4':gotoxy(14,8);
  531. printf("                            ");
  532. gotoxy(14,8);
  533. memset(aux.sinonimo3,0x00,20);
  534. scanf("%s",&aux.sinonimo3);
  535. gotoxy(11,25);
  536. select=getch();
  537. break;
  538. case'5':gotoxy(14,10);
  539. printf("                            ");
  540. gotoxy(14,10);
  541. memset(aux.antonimo,0x00,20);
  542. scanf("%s",&aux.antonimo);
  543. gotoxy(11,25);
  544. select=getch();
  545. break;
  546. case'6':gotoxy(14,12);
  547. printf("                            ");
  548. gotoxy(14,12);
  549. memset(aux.paronimo,0x00,20);
  550. scanf("%s",&aux.paronimo);
  551. gotoxy(11,25);
  552. select=getch();
  553. break;
  554. case'9':opc='s';
  555. break;
  556. case'0':strlwr(aux.palabra);strlwr(aux.sinonimo1);
  557. strlwr(aux.sinonimo2);strlwr(aux.sinonimo3);
  558. strlwr(aux.antonimo);strlwr(aux.paronimo);
  559. archivo = fopen(DICCIONARIO, "rb+");
  560. fseek(archivo,sizeof(struct dato)*pos,SEEK_SET);
  561. fwrite(&aux,sizeof(struct dato),1,archivo);
  562. fclose(archivo);
  563. clrscr();
  564. gotoxy(15,12);
  565. printf("PALABRA MODIFICADA Y GUARDADA CORRECTAMENTE");
  566. opc='s';
  567. getch();
  568. break;
  569.  
  570. default:gotoxy(11,25);
  571. printf("opcion incorrecta");
  572. getch();
  573. gotoxy(11,25);
  574. printf("                 ");
  575. gotoxy(11,25);
  576. select=getch();
  577. break;
  578. }//switch
  579. }//while
  580. }//if encontrado
  581. }//if!=null
  582.  
  583. }//if ok
  584. }
  585.  
  586.  
  587.  
  588.  
  589. void baja(){
  590. int encontrado=0,ok=0,posicion=0;
  591. struct dato aux;
  592. char palabra[20],opc='n';
  593. FILE *archivo;
  594. clrscr();
  595. archivo=fopen(DICCIONARIO,"rb");
  596. if(archivo!=NULL){
  597. fseek(archivo,0,SEEK_END);
  598. if(ftell(archivo)!=0)
  599. ok=1;
  600. fclose(archivo);
  601. }
  602. if(ok==1){
  603. memset(&aux,0x00,sizeof(struct dato));
  604. memset(&palabra,0x00,20);
  605. archivo=fopen(DICCIONARIO,"rb");
  606. if(archivo!=NULL){
  607. gotoxy(20,2);
  608. printf("ELIMINAR PALABRAS\n");
  609. printf("\n Ingrese la palabra a eliminar: ");
  610. scanf("%s",&palabra);
  611. strlwr(palabra);
  612. while(encontrado==0 && !feof(archivo)){
  613. fread(&aux,sizeof(struct dato),1,archivo);
  614. if(strcmp(palabra,aux.palabra)==0){
  615. encontrado=1;
  616. }//strcmp
  617. }//while
  618. clrscr();
  619. if(encontrado==1){
  620. printf("\n Esta seguro que desea eliminar \n la siguiente entrada del diccionario (s/n)\n");
  621. printf("\n Palabra: %s \n Sinonimos: %s %s %s\n Antonimo: %s\n Paronimo: %s\n",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3,aux.antonimo,aux.paronimo);
  622. }
  623. else{
  624. printf("\n No se encontro la palabra ingresada\n");
  625. }
  626. fseek(archivo,0,SEEK_END);
  627. posicion=ftell(archivo);
  628. fclose(archivo);
  629. opc=getch();
  630. if(opc=='s' || opc=='S'){
  631. archivo=fopen(DICCIONARIO,"rb+");
  632.       // fseek(archivo,0,SEEK_SET);
  633. while(ftell(archivo)<=posicion){
  634. fread(&aux,sizeof(struct dato),1,archivo);
  635. fseek(archivo,sizeof(struct dato)*(-2),SEEK_CUR);
  636. fwrite(&aux,sizeof(struct dato),1,archivo);
  637. fseek(archivo,sizeof(struct dato),SEEK_CUR);
  638.  
  639. }
  640. fclose(archivo);
  641. }
  642. }
  643. }//if ok
  644. }//void
9  Programación / Programación C/C++ / Re: [?] leer binario y guardar en struct dato AYUDA en: 29 Octubre 2011, 15:44 pm
Usando el codigo que me dieron en la primer respuesta, quiero hacer una funcion para eliminar palabras que no sea del estilo que esta en ese codigo, sino que sea algo asi:

Código
  1. void baja(){
  2. int encontrado=0,ok=0,posicion=0;
  3. struct dato aux;
  4. char palabra[20],opc='n';
  5. FILE *archivo;
  6. clrscr();
  7. archivo=fopen(DICCIONARIO,"rb");
  8. if(archivo!=NULL){
  9. fseek(archivo,0,SEEK_END);
  10. if(ftell(archivo)!=0)
  11. ok=1;
  12. fclose(archivo);
  13. }
  14. if(ok==1){
  15. memset(&aux,0x00,sizeof(struct dato));
  16. memset(&palabra,0x00,20);
  17. archivo=fopen(DICCIONARIO,"rb");
  18. if(archivo!=NULL){
  19. gotoxy(20,2);
  20. printf("ELIMINAR PALABRAS\n");
  21. printf("\n Ingrese la palabra a eliminar: ");
  22. scanf("%s",&palabra);
  23. strlwr(palabra);
  24. while(encontrado==0 && !feof(archivo)){
  25. fread(&aux,sizeof(struct dato),1,archivo);
  26. if(strcmp(palabra,aux.palabra)==0){
  27. encontrado=1;
  28. }//strcmp
  29. }//while
  30. clrscr();
  31. if(encontrado==1){
  32. printf("\n Esta seguro que desea eliminar \n la siguiente entrada del diccionario (s/n)\n");
  33. printf("\n Palabra: %s \n Sinonimos: %s %s %s\n Antonimo: %s\n Paronimo: %s\n",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3,aux.antonimo,aux.paronimo);
  34. }
  35. else{
  36. printf("\n No se encontro la palabra ingresada\n");
  37. }
  38. fseek(archivo,0,SEEK_END);
  39. posicion=ftell(archivo);
  40. fclose(archivo);
  41. opc=getch();
  42. if(opc=='s' || opc=='S'){
  43. archivo=fopen(DICCIONARIO,"rb+");
  44.       // fseek(archivo,0,SEEK_SET);
  45. while(ftell(archivo)<=posicion){
  46. fread(&aux,sizeof(struct dato),1,archivo);
  47. fseek(archivo,sizeof(struct dato)*(-2),SEEK_CUR);
  48. fwrite(&aux,sizeof(struct dato),1,archivo);
  49. fseek(archivo,sizeof(struct dato),SEEK_CUR);
  50.  
  51. }
  52. fclose(archivo);
  53. }
  54. } }//if ok
  55. }//void


pero la verdad intente varias cosas y no me funciona bien, alguien me puede dar una mano por favor?
10  Programación / Programación C/C++ / Re: [?] leer binario y guardar en struct dato AYUDA en: 12 Octubre 2011, 20:26 pm
Muchas gracias a los 2!
funciono:
Código
  1. if(aux.antonimo[0] != '\0');
  2.  
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines