First commit 16/08/1996

This commit is contained in:
2021-09-12 19:50:38 +02:00
commit 0f24b3477e
129 changed files with 10926 additions and 0 deletions

139
TEXTO.CPP Normal file
View File

@ -0,0 +1,139 @@
#include <conio.h>
#include <stdio.h>
#include <io.h>
#define ANCHO 80
#define ALTOini 5
#define ALTO 20
#define ARRIBA 72
#define ABAJO 80
void MuestraLinea( char Como, char Donde, char *Quien )
{
if ( Como )
{
textattr( 1 );
} else {
textattr( 5 );
}
// Borramos la linearrr
gotoxy( 2, Donde+ALTOini );
cprintf( "%s", Quien );
};
void ObtenLinea( FILE *PT, int LINEA, char *Buffer )
{
fseek( PT, sizeof(char)*ANCHO*LINEA, SEEK_SET );
fread( &Buffer, ANCHO*sizeof(char), 1, PT );
};
void PonLinea( FILE *PT, int LINEA, char *Buffer )
{
fseek( PT, sizeof(char)*ANCHO*LINEA, SEEK_SET );
fwrite( &Buffer, ANCHO*sizeof(char), 1, PT );
};
void RefreshTexto( FILE *PT, int NLinicio )
{
char Buffer[ANCHO+1];
int i;
i = 0;
while ( !feof( PT ) && i < 22 )
{
ObtenLinea( PT, (i+NLinicio), Buffer );
MuestraLinea( 0, i, Buffer );
i++;
}
};
void PTextos( char *file )
{
FILE *PTxt;
int Lvisual, Lrestante;
char ok = 0;
char Buffer[ANCHO+1];
clrscr();
if ( ( PTxt = fopen( file, "w+b" ) ) == NULL )
{
//--ERROR
return;
} else {
Lvisual = 0;
Lrestante = 0;
RefreshTexto( PTxt, Lvisual+Lrestante );
ObtenLinea( PTxt, Lvisual + Lrestante, Buffer );
ok = 0;
do {
MuestraLinea( 1, Lvisual, Buffer );
while( !kbhit() );
MuestraLinea( 0, Lvisual, Buffer );
switch ( getch() )
{
case 27:
ok = 1;
break;
case 0:
switch ( getch() )
{
case ARRIBA:
Lvisual --;
if ( Lvisual < 0 )
{
Lvisual = 0;
Lrestante --;
if ( Lrestante < 0 )
Lrestante = 0;
}
RefreshTexto( PTxt, Lvisual + Lrestante );
ObtenLinea( PTxt, Lvisual + Lrestante, Buffer );
break;
case ABAJO:
Lvisual ++;
if ( Lvisual > ALTO )
{
Lvisual = ALTO;
Lrestante ++;
// Deberias controlar las lineas intermedias, para ponerlas a cero
}
RefreshTexto( PTxt, Lvisual + Lrestante );
ObtenLinea( PTxt, Lvisual + Lrestante, Buffer );
break;
}
default:
// Editamos la linearrr
//********************************************************************************
// EditaLinea( 2, Lvisual, Buffer );
//********************************************************************************
sprintf( Buffer, "Linea %d", Lvisual + Lrestante );
PonLinea( PTxt, Lvisual + Lrestante, Buffer );
break;
}
} while ( !ok );
fclose( PTxt );
}
};
void main( void )
{
PTextos( "Prueba.txt" );
}