Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - nolosabe

#1
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 (vbnet) [Seleccionar]

    Private Sub Button1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseMove
        Dim x As Integer, y As Integer

        x = 32
        y = 272

        While (y > 220)
            y = y - 3

            Button1.Location() = New Point(x, y)
        End While

    End Sub
#2
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
#3
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


#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


void alta();
void baja();
void modificar();
void listarAnt();
void listarPar();
//void listarTodo();
void consultar();
void subMenu();
int total();


#define DICCIONARIO "diccio.bin"

struct dato{
char palabra[20];
char sinonimo1[20],sinonimo2[20],sinonimo3[20];
char antonimo[20];
char paronimo[20];
}diccionario;

FILE *archivo = NULL;

void main(){
int opcion=0;
char salir='n';
FILE*archivo;
textbackground(0);
archivo=fopen(DICCIONARIO,"ab");
fclose(archivo);

while (salir!='s'){
clrscr();
textcolor(2);
printf("\n   DICCIONARIO \n");
printf("1) Ingresar \n");
printf("2) Eliminar \n");
printf("3) Modificar \n");
printf("4) Consultar \n");
printf("5) Listar \n");
printf("0) Salir \n");
opcion=getch();
switch(opcion){
case '1': alta();
break;
case '2': baja();
break;
case '3': modificar();
break;
case '4': consultar();
break;
case '5': subMenu();
break;
case '0': printf("\n ¨Esta seguro que desea salir? (s/n)");
salir=tolower(getch());
clrscr();
break;
default:printf("\n opcion incorrecta");
getch();
clrscr();
break;
}//fin switch
}//fin while
}//fin void main



void subMenu(){
clrscr();
int opc;
char salir='n';

archivo=fopen(DICCIONARIO,"rb");
if(archivo){

while(salir!='s'){
clrscr();
printf("\n Listar Palabras existentes \n");

printf("\n1) Listar antonimos");
printf("\n2) Listar paronimos");
printf("\n3) Listar: sinonimos, antonimos y paronimos");
printf("\n0) Volver al menu principal\n");

opc=getch();
clrscr();
switch(opc){

case '1': listarAnt();
break;
case '2': listarPar();
break;
case '3': //listarTodo();
//salir='s';
break;
case '0': salir='s';
break;
default:printf("\n OPCION INCORRECTA");
getch();
break;
}//Fin switch submenu
}//fin while
}//fin if
else{
printf("\n OCURRIO UN ERROR AL ABRIR EL ARCHIVO");
}//fin else
}//fin subMenu


int total(){
clrscr();
int total;
FILE*archivo;
archivo=fopen(DICCIONARIO,"rb");//abro el archivo diccionario.bin como solo lectura
if(archivo==NULL){
printf("\n Error al abrir el archivo");
fclose(archivo);
}
else{
fseek(archivo,0,SEEK_END);
total=ftell(archivo) / sizeof(struct dato);//divido el tama¤o del archivo entre el tama¤o de la estructura para saber cuantas hay
}
return total;//devuelvo el valor de la variable total(int)
}

void alta(){
struct dato aux,aux2;
char opc=' ',confirmar=' ';
int encontrado=0,error=0;

clrscr();
memset(&aux,0x00,sizeof(struct dato));
printf("\n Ingresar palabra \n");
printf("\n Palabra: ");
memset(&aux.palabra,0x00,20);
gets(aux.palabra);
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
while(encontrado==0 && !feof(archivo)){
if(aux.palabra[0]!='\0'){
fread(&aux2,sizeof(struct dato),1,archivo);
if(strcmp(aux.palabra,aux2.palabra)==0){
++encontrado;
}
}else{
error=1;
encontrado=99;
}
}//while
clrscr();
if(encontrado==0){
printf("\n ¨Desea ingresar un sinonimo? (s/n)");
opc=' ';

opc=tolower(getch());
if(opc=='s'){
clrscr();
printf("\n\n ingrese un sinonimo: ");
gets(aux.sinonimo1);
opc=' ';
clrscr();
printf("\n\n ¨Desea ingresar otro sinonimo? (s/n)");
opc=tolower(getch());
if(opc=='s'){
clrscr();
printf("\n\n ingrese otro sinonimo: ");
gets(aux.sinonimo2);
opc=' ';
clrscr();
printf("\n\n ¨Desea ingresar otro sinonimo? (s/n)");
opc=tolower(getch());
if(opc=='s'){
clrscr();
printf("\n ingrese otro sinonimo: ");
gets(aux.sinonimo3);
opc='n';
}//if3

}//if2

}//if1



clrscr();
printf("\n Ingrese un antonimo: ");
gets(aux.antonimo);
printf("\n ¨Desea ingresar un paronimo? (s/n) ");
opc=getch();
if(opc=='s'){
printf("\n Ingrese un paronimo: ");
gets(aux.paronimo);
}
clrscr();
printf(" Usted ingreso\n");
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);
printf("\n\n Esta seguro que desea agregar estos datos al diccionario(s/n)");
confirmar=tolower(getch());
if(confirmar!='s'){
printf("\n\n --------\n\n Los datos no se escribieron en el archivo");
getch();
}//IF
else{
if(confirmar=='s'){
archivo=fopen(DICCIONARIO,"ab");
strlwr(aux.palabra);strlwr(aux.sinonimo1);
strlwr(aux.sinonimo2);strlwr(aux.sinonimo3);
strlwr(aux.antonimo);strlwr(aux.paronimo);
fwrite(&aux,sizeof(struct dato),1,archivo);

/*a continuacion lo que se hace es, que si
existen sinonimos, estos se ingresen como palabra,
la que era la palabra y los otros sinonimos
se le ingresen como sinonimo, y el antonimo y paronimo
se le ingresen tambien */

if(aux.sinonimo1[0]!='\0'){
memset(&aux2,0x00,sizeof(struct dato));
strcpy(aux2.sinonimo1,aux.palabra);
strcpy(aux2.palabra,aux.sinonimo1);
strcpy(aux2.sinonimo2,aux.sinonimo2);
strcpy(aux2.sinonimo3,aux.sinonimo3);
strcpy(aux2.antonimo,aux.antonimo);
fwrite(&aux2,sizeof(struct dato),1,archivo);
}//if aux sinonimo1
if(aux.sinonimo2[0]!='\0'){
memset(&aux2,0x00,sizeof(struct dato));
strcpy(aux2.sinonimo2,aux.palabra);
strcpy(aux2.palabra,aux.sinonimo2);
strcpy(aux2.sinonimo1,aux.sinonimo1);
strcpy(aux2.sinonimo3,aux.sinonimo3);
strcpy(aux2.antonimo,aux.antonimo);
fwrite(&aux2,sizeof(struct dato),1,archivo);
}//if aux sinonimo2
if(aux.sinonimo3[0]!='\0'){
memset(&aux2,0x00,sizeof(struct dato));
strcpy(aux2.sinonimo3,aux.palabra);
strcpy(aux2.palabra,aux.sinonimo3);
strcpy(aux2.sinonimo2,aux.sinonimo2);
strcpy(aux2.sinonimo1,aux.sinonimo1);
strcpy(aux2.antonimo,aux.antonimo);
fwrite(&aux2,sizeof(struct dato),1,archivo);
}//if aux sinonimo2
fclose(archivo);
}//if
}//else
}//primer if


}//if encontrado
if(encontrado==1){
clrscr();
printf("\n\n  LA PALABRA YA EXISTE EN EL DICCIONARIO");
getch();
}//encontrado = 1
if(error==1){
clrscr();
printf("\n\n  Error, no ingreso ninguna palabra");
gotoxy(2,8);
printf("\n\n  Presione cualquier tecla para volver al menu principal\n");
getch();
}//error = 1
}//funcion



void consultar(){
struct dato aux;
char palabra[20];
int encontrado=0,ok=0,opc=0;
FILE*archivo;

archivo=fopen(DICCIONARIO,"rb");
if(archivo){
fseek(archivo,0,SEEK_END);
if(ftell(archivo)!=0)
ok=1;
fclose(archivo);
}//if archivo
if(ok==1){
memset(&aux,0x00,sizeof(struct dato));
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
printf("\n Ingrese la palabra a consultar: ");
memset(&palabra,0x00,20);
scanf("%s",&palabra);
while(encontrado==0 && !feof(archivo)){
fread(&aux,sizeof(struct dato),1,archivo);
if(strcmp(palabra,aux.palabra)==0){
++encontrado;
}//strcmp
}//while
fclose(archivo);
if(encontrado!=0){
clrscr();
printf("\n ¨Que desea consultar? \n");
printf("\n1) Mostrar todos los sinonimos");
printf("\n2) Mostrar el antonimo");
printf("\n3) Mosrar el paronimo");
printf("\n4) Mostrar todo");
printf("\n0) Volver al menu principal\n");
opc=getch();
switch(opc){
case '1':printf("\n\n Palabra: %s \n Sinonimos: %s %s %s\n ",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3);
getch();
break;
case '2':printf("\n\n Palabra: %s \n Antonimo: %s\n",aux.palabra,aux.antonimo);
getch();
break;
case '3':printf("\n\n Palabra: %s \n Paronimo: %s",aux.palabra,aux.paronimo);
getch();
break;
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);
getch();
break;

case '0': break;
default:printf("\n OPCION INCORRECTA");
getch();
break;

}//switch
}//if encontrado
else{
printf("\n\n LA PALABRA NO EXISTE EN EL DICCIONARIO");
getch();
}//else
}//if archivo!=NULL
else printf("\n ERROR AL ABRIR EL ARCHIVO");

}// if ok=1
else printf("\n ERROR AL ABRIR EL ARCHIVO");


}

void listarAnt(){
struct dato aux;
int cont=0;
FILE *archivo;

memset(&aux,0x00,sizeof(struct dato));
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
fseek(archivo,0,SEEK_SET);
gotoxy(3,2);
printf("P A L A B R A      |");
gotoxy(30,2);
printf("A N T O N I M O\n");
printf("------------------------------------------------|");
gotoxy(1,5);
while(!feof(archivo)){
if(fread(&aux,sizeof(struct dato),1,archivo)){
if(aux.antonimo[0]!='\0'){
printf("\n %15s     |  %15s \n",aux.palabra,aux.antonimo);
printf("------------------------------------------------|");
cont++;
if(cont==7){
printf("\n Presione una tecla para continuar el listado");
getch();
cont=0;
clrscr();
gotoxy(3,2);
printf("P A L A B R A      |");
gotoxy(30,2);
printf("A N T O N I M O\n");
printf("------------------------------------------------|");
gotoxy(1,5);
}
}
}
}
fclose(archivo);
getch();
}
}

void listarPar(){
struct dato aux;
int cont=0,salir=1;
FILE *archivo;

memset(&aux,0x00,sizeof(struct dato));
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
fseek(archivo,0,SEEK_SET);
gotoxy(3,2);
printf("P A L A B R A      |");
gotoxy(30,2);
printf("P A R O N I M O\n");
printf("------------------------------------------------|");
gotoxy(1,5);
salir=1;
while(!feof(archivo) && salir==1){
if(fread(&aux,sizeof(struct dato),1,archivo)){
if(aux.paronimo[0]!='\0'){
printf("\n %15s     |  %15s \n",aux.palabra,aux.paronimo);
printf("------------------------------------------------|");
cont++;
if(cont==7){
printf("\n Presione una tecla para continuar el listado, o 0 (cero) para salir");
getch();
cont=0;
clrscr();
gotoxy(3,2);
printf("P A L A B R A      |");
gotoxy(30,2);
printf("P A R O N I M O\n");
printf("------------------------------------------------|");
gotoxy(1,5);
}
}
}
}
fclose(archivo);
getch();
}
}









void modificar(){
char opc='n';
struct dato aux;
FILE *archivo;
archivo=NULL;
char palabra[20];
int encontrado=0,ok=0,select=0,pos=0;
clrscr();
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
fseek(archivo,0,SEEK_END);
if(ftell(archivo)!=0)
ok=1;
fclose(archivo);
}
if(ok==1){
memset(&aux,0x00,sizeof(struct dato));
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
gotoxy(20,2);
printf("MODIFICAR PALABRAS\n");
printf("\n Ingrese la palabra a modificar: ");
scanf("%s",&palabra);
strlwr(palabra);
pos=0;
while(encontrado==0 && !feof(archivo)){
fread(&aux,sizeof(struct dato),1,archivo);
if(strcmp(palabra,aux.palabra)!=0)
pos++;
if(strcmp(palabra,aux.palabra)==0){
encontrado=1;
}//strcmp
}//while

if(encontrado==1){
fclose(archivo);
clrscr();
gotoxy(2,2);
printf("Palabra:    %s",aux.palabra);
gotoxy(2,4);
printf("Sinonimo 1: %s",aux.sinonimo1);
gotoxy(2,6);
printf("Sinonimo 2: %s",aux.sinonimo2);
gotoxy(2,8);
printf("Sinonimo 3: %s",aux.sinonimo3);
gotoxy(2,10);
printf("Antonimo:   %s",aux.antonimo);
gotoxy(2,12);
printf("Paronimo:   %s",aux.paronimo);
gotoxy(2,14);
printf("Ingrese un campo a modificar");
gotoxy(2,16);
printf("1) Palabra");
gotoxy(2,17);
printf("2) Primer sinonimo");
gotoxy(2,18);
printf("3) Segundo sinonimo");
gotoxy(2,19);
printf("4) Tercer sinonimo");
gotoxy(2,20);
printf("5) Antonimo");
gotoxy(2,21);
printf("6) Paronimo");
gotoxy(2,22);
printf("9) Salir sin guardar");
gotoxy(2,23);
printf("0) SALIR Y GUARDAR");
gotoxy(2,25);
printf("OPCION: ");
select=getch();
while(opc!='s'){
switch(select){
case'1':gotoxy(14,2);
printf("                            ");
gotoxy(14,2);
memset(aux.palabra,0x00,20);
scanf("%s",&aux.palabra);
gotoxy(11,25);
select=getch();
break;
case'2':gotoxy(14,4);
printf("                            ");
gotoxy(14,4);
memset(aux.sinonimo1,0x00,20);
scanf("%s",&aux.sinonimo1);
gotoxy(11,25);
select=getch();
break;
case'3':gotoxy(14,6);
printf("                            ");
gotoxy(14,6);
memset(aux.sinonimo2,0x00,20);
scanf("%s",&aux.sinonimo2);
gotoxy(11,25);
select=getch();
break;
case'4':gotoxy(14,8);
printf("                            ");
gotoxy(14,8);
memset(aux.sinonimo3,0x00,20);
scanf("%s",&aux.sinonimo3);
gotoxy(11,25);
select=getch();
break;
case'5':gotoxy(14,10);
printf("                            ");
gotoxy(14,10);
memset(aux.antonimo,0x00,20);
scanf("%s",&aux.antonimo);
gotoxy(11,25);
select=getch();
break;
case'6':gotoxy(14,12);
printf("                            ");
gotoxy(14,12);
memset(aux.paronimo,0x00,20);
scanf("%s",&aux.paronimo);
gotoxy(11,25);
select=getch();
break;
case'9':opc='s';
break;
case'0':strlwr(aux.palabra);strlwr(aux.sinonimo1);
strlwr(aux.sinonimo2);strlwr(aux.sinonimo3);
strlwr(aux.antonimo);strlwr(aux.paronimo);
archivo = fopen(DICCIONARIO, "rb+");
fseek(archivo,sizeof(struct dato)*pos,SEEK_SET);
fwrite(&aux,sizeof(struct dato),1,archivo);
fclose(archivo);
clrscr();
gotoxy(15,12);
printf("PALABRA MODIFICADA Y GUARDADA CORRECTAMENTE");
opc='s';
getch();
break;

default:gotoxy(11,25);
printf("opcion incorrecta");
getch();
gotoxy(11,25);
printf("                 ");
gotoxy(11,25);
select=getch();
break;
}//switch
}//while
}//if encontrado
}//if!=null

}//if ok
}




void baja(){
int encontrado=0,ok=0,posicion=0;
struct dato aux;
char palabra[20],opc='n';
FILE *archivo;
clrscr();
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
fseek(archivo,0,SEEK_END);
if(ftell(archivo)!=0)
ok=1;
fclose(archivo);
}
if(ok==1){
memset(&aux,0x00,sizeof(struct dato));
memset(&palabra,0x00,20);
archivo=fopen(DICCIONARIO,"rb");
if(archivo!=NULL){
gotoxy(20,2);
printf("ELIMINAR PALABRAS\n");
printf("\n Ingrese la palabra a eliminar: ");
scanf("%s",&palabra);
strlwr(palabra);
while(encontrado==0 && !feof(archivo)){
fread(&aux,sizeof(struct dato),1,archivo);
if(strcmp(palabra,aux.palabra)==0){
encontrado=1;
}//strcmp
}//while
clrscr();
if(encontrado==1){
printf("\n Esta seguro que desea eliminar \n la siguiente entrada del diccionario (s/n)\n");
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);
}
else{
printf("\n No se encontro la palabra ingresada\n");
}
fseek(archivo,0,SEEK_END);
posicion=ftell(archivo);
fclose(archivo);
opc=getch();
if(opc=='s' || opc=='S'){
archivo=fopen(DICCIONARIO,"rb+");
      // fseek(archivo,0,SEEK_SET);
while(ftell(archivo)<=posicion){
fread(&aux,sizeof(struct dato),1,archivo);
fseek(archivo,sizeof(struct dato)*(-2),SEEK_CUR);
fwrite(&aux,sizeof(struct dato),1,archivo);
fseek(archivo,sizeof(struct dato),SEEK_CUR);

}
fclose(archivo);
}
}
}//if ok
}//void
#4
tengo un codigo que hice de un diccionario, pero trao y trato y no me sale el tema de que el usuario ingrese una cadena y el programa la busque en el archivo y la almacene en el "struct dato"...
les paso el codigo

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

void alta(int);
/*void baja();
void modificar();
void consultar();
void listarSin(int);
void listarAnt();
void listarPar();*/
void subMenu();
int total();

#define LARGO 100
#define DICCIONARIO "c:\dicc.bin"

struct dato{
char palabra[20];
char sinonimo1[20],sinonimo2[20],sinonimo3[20];
char antonimo[20];
char paronimo[20];
int borrado;
}diccionario[LARGO];

FILE *archivo = NULL;

void main(){
int opcion=0,pos=total();
char salir='n';
while (salir!='s'){
clrscr();
printf("\n   DICCIONARIO \n");
printf("1) Ingresar \n");
printf("2) Eliminar \n");
printf("3) Modificar \n");
printf("4) Consultar \n");
printf("5) Listar \n");
printf("0) Salir \n");
opcion=getch();
switch(opcion){
case '1': pos=total();
pos++;
alta(pos);
break;
case '2': //baja();
break;
case '3': //modificar();
break;
case '4': //consultar();
break;
case '5': subMenu();
break;
case '0': printf("\n &#168;Esta seguro que desea salir? (s/n)");
salir=getch();
clrscr();
break;
default:printf("\n opcion incorrecta");
getch();
clrscr();
break;
}//fin switch
}//fin while
}//fin void main



void subMenu(){
clrscr();
int opc;
char salir='n';
printf("\n Listar Palabras existentes \n");
printf("\n1) Listar sinonimos");
printf("\n2) Listar antonimos");
printf("\n3) Listar paronimos");
printf("\n4) Listar: sinonimos, antonimos y paronimos");
printf("\n0) Volver al menu principal");
opc=getch();
clrscr();
while(salir!='s'){
switch(opc){
case '1': //listarSin();
break;
case '2': //listarAnt();
break;
case '3': //listarPar();
break;
case '4': //listarSin();
//listarAnt();
//listarPar();
break;
case '0': printf("\n &#168;Desea volver al menu principal (s/n)?");
salir=getch();
break;
default:printf("\n OPCION INCORRECTA");
getch();
break;
}//Fin switch submenu
}//fin while
}//fin subMenu


int total(){
clrscr();
int total;
archivo=NULL;
archivo=fopen(DICCIONARIO,"rb");//abro el archivo diccionario.bin como solo lectura
if(archivo==NULL){
printf("\n Error al abrir el archivo");
fclose(archivo);
}
else{
fseek(archivo,0,SEEK_END);
total=ftell(archivo) / sizeof(struct dato);//divido el tama&#164;o del archivo entre el tama&#164;o de la estructura para saber cuantas hay
}
return total;//devuelvo el valor de la variable total(int)
}

void alta(int pos){
char opc=' ',confirmar=' ';
archivo=NULL;
clrscr();
printf("\n Ingresar palabra/s \n");
printf("\n Palabra: ");
gets(diccionario[pos].palabra);
clrscr();
printf("\n &#168;Desea ingresar un sinonimo? (s/n)");
opc='a';
// while(opc!='s' || opc!='n'){
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese un sinonimo: ");
gets(diccionario[pos].sinonimo1);
opc=' ';
clrscr();
printf("\n&#168;Desea ingresar otro sinonimo? (s/n)");
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese otro sinonimo: ");
gets(diccionario[pos].sinonimo2);
opc=' ';
clrscr();
printf("\n&#168;Desea ingresar otro sinonimo? (s/n)");
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese otro sinonimo: ");
gets(diccionario[pos].sinonimo3);
}//if3
}//if2
}//if1
// }//while

clrscr();
printf(" Ingrese un antonimo: ");
gets(diccionario[pos].antonimo);
printf("\n Ingrese un paronimo o presione enter para no ingresar nada: ");
gets(diccionario[pos].paronimo);
clrscr();
printf(" Usted ingreso\n");
printf("\n\n Palabra: %s \n Sinonimos: %s, %s, %s\n Antonimo: %s\n Paronimo: %s",diccionario[pos].palabra,diccionario[pos].sinonimo1,diccionario[pos].sinonimo2,diccionario[pos].sinonimo3,diccionario[pos].antonimo,diccionario[pos].paronimo);
printf("\n\n Esta seguro que desea agregar estos datos al diccionario(s/n)");
confirmar=getch();
if(confirmar=='n'){
printf("\n Los datos no se escribieron en el archivo");
}//IF
else{ if(confirmar=='s'){
archivo=fopen(DICCIONARIO,"ab+");
fwrite(&diccionario[pos],sizeof(struct dato),1,archivo);
fclose(archivo);
}//if
}//else
}//funcion
#5
Hola, soy nuevo en el foro, y necesito ayuda con un programa que me mandaron como proyecto para el instituto en el que tengo que crear un programa que guarde palabras, varios sinonimos, un solo antonimo y un solo paronimo... tiene que tener un menu que permita al usuario agregar palabras (altas) dar de baja palabras, modificar (por errores ortograficos), consultar una palabra, y listar todas.

estoy trancado con el tema de los archivos binarios.. no tengo idea del tema porque falte a clase ya que estaba enfermo.
les dejo lo que tengo hecho hasta ahora, hay funciones que las tengo con // porque aun no estan declaradas... me tira como 8 errores, a ver si me pueden auxiliar.

MUCHAS GRACIAS

ARREGLE EL CODIGO, PERO SI ME PUEDEN AYUDAR CON ALGUNA DE LAS FUNCIONES QUE ME FALTAN POR HACER LES AGRADEZCO


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

void alta(int);
/*void baja();
void modificar();
void consultar();
void listarSin(int);
void listarAnt();
void listarPar();*/
void subMenu();
int total();

#define LARGO 100
#define DICCIONARIO "c:\dicc.bin"

struct dato{
char palabra[20];
char sinonimo1[20],sinonimo2[20],sinonimo3[20];
char antonimo[20];
char paronimo[20];
int borrado;
}diccionario[LARGO];

FILE *archivo = NULL;

void main(){
int opcion=0,pos=total();
char salir='n';
while (salir!='s'){
clrscr();
printf("\n   DICCIONARIO \n");
printf("1) Ingresar \n");
printf("2) Eliminar \n");
printf("3) Modificar \n");
printf("4) Consultar \n");
printf("5) Listar \n");
printf("0) Salir \n");
opcion=getch();
switch(opcion){
case '1': pos=total();
pos++;
alta(pos);
break;
case '2': //baja();
break;
case '3': //modificar();
break;
case '4': //consultar();
break;
case '5': subMenu();
break;
case '0': printf("\n ¨Esta seguro que desea salir? (s/n)");
salir=getch();
clrscr();
break;
default:printf("\n opcion incorrecta");
getch();
clrscr();
break;
}//fin switch
}//fin while
}//fin void main



void subMenu(){
clrscr();
int opc;
char salir='n';
printf("\n Listar Palabras existentes \n");
printf("\n1) Listar sinonimos");
printf("\n2) Listar antonimos");
printf("\n3) Listar paronimos");
printf("\n4) Listar: sinonimos, antonimos y paronimos");
printf("\n0) Volver al menu principal");
opc=getch();
clrscr();
while(salir!='s'){
switch(opc){
case '1': //listarSin();
break;
case '2': //listarAnt();
break;
case '3': //listarPar();
break;
case '4': //listarSin();
//listarAnt();
//listarPar();
break;
case '0': printf("\n ¨Desea volver al menu principal (s/n)?");
salir=getch();
break;
default:printf("\n OPCION INCORRECTA");
getch();
break;
}//Fin switch submenu
}//fin while
}//fin subMenu


int total(){
clrscr();
int total;
archivo=NULL;
archivo=fopen(DICCIONARIO,"rb");//abro el archivo diccionario.bin como solo lectura
if(archivo==NULL){
printf("\n Error al abrir el archivo");
fclose(archivo);
}
else{
fseek(archivo,0,SEEK_END);
total=ftell(archivo) / sizeof(struct dato);//divido el tama¤o del archivo entre el tama¤o de la estructura para saber cuantas hay
}
return total;//devuelvo el valor de la variable total(int)
}

void alta(int pos){
char opc=' ',confirmar=' ';
archivo=NULL;
clrscr();
printf("\n Ingresar palabra/s \n");
printf("\n Palabra: ");
gets(diccionario[pos].palabra);
clrscr();
printf("\n ¨Desea ingresar un sinonimo? (s/n)");
opc='a';
// while(opc!='s' || opc!='n'){
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese un sinonimo: ");
gets(diccionario[pos].sinonimo1);
opc=' ';
clrscr();
printf("\n¨Desea ingresar otro sinonimo? (s/n)");
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese otro sinonimo: ");
gets(diccionario[pos].sinonimo2);
opc=' ';
clrscr();
printf("\n¨Desea ingresar otro sinonimo? (s/n)");
opc=getch();
if(opc=='s'){
clrscr();
printf("ingrese otro sinonimo: ");
gets(diccionario[pos].sinonimo3);
}//if3
}//if2
}//if1
// }//while

clrscr();
printf(" Ingrese un antonimo: ");
gets(diccionario[pos].antonimo);
printf("\n Ingrese un paronimo o presione enter para no ingresar nada: ");
gets(diccionario[pos].paronimo);
clrscr();
printf(" Usted ingreso\n");
printf("\n\n Palabra: %s \n Sinonimos: %s, %s, %s\n Antonimo: %s\n Paronimo: %s",diccionario[pos].palabra,diccionario[pos].sinonimo1,diccionario[pos].sinonimo2,diccionario[pos].sinonimo3,diccionario[pos].antonimo,diccionario[pos].paronimo);
printf("\n\n Esta seguro que desea agregar estos datos al diccionario(s/n)");
confirmar=getch();
if(confirmar=='n'){
printf("\n Los datos no se escribieron en el archivo");
}//IF
else{ if(confirmar=='s'){
archivo=fopen(DICCIONARIO,"ab+");
fwrite(&diccionario[pos],sizeof(struct dato),1,archivo);
fclose(archivo);
}//if
}//else
}//funcion
:?: