lunes, 17 de febrero de 2014

Apuntes SAS:
 
libname direc 'C:\Users\enralvar\Documents\SAS';
data uno ; // esto es para crear el archivo
     input altura peso nombre $ @@ ; // el input separado por espacios y el dolar es para String, las arrobas para el salto de linea
   cards ; // es en plan almacenar lo siguiente
    1.80 78 Jose // datos a almacenar del input too cutre
         1.64 64 Maria          1.71 72 Pedro
   ; // esta coma va al final
proc print data=uno;run; // para que lo compile





print data=uno;run;



lunes, 12 de agosto de 2013

PowerShell *.bat


;@echo off
;Findstr -rbv ; %0 | powershell -c - 
;goto:sCode

comandos powershell aquí

;:sCode 
;echo done
;pause & goto :eof

lunes, 24 de junio de 2013

=SI(ESERROR(COINCIDIR(A49;C:C;0));"";A49), compara dos columnas y el resultado lo pone al lado de cada coincidencia.

lunes, 22 de abril de 2013

VI

create a .vimrc en tu ~ y editas

set number # numera las lineas

:command WQ wq


:command Wq wq

:command W w

:command Q q

iab AlP ABCDEFGHIJKLMNOPQRSTUVWXYZ


iab MoN January February March April May June July August September October November December

iab MoO Jan Feb Mar Apr May Jun Jul Aug Sep Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

iab NuM 12345678901234567890123456789012345678901234567890123456789012345678901234567890

iab RuL ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0






Shell Script, Basic commands

Using printf or echo:

# if you want to printf what is inside the variable
# you can use the following sentences
var=4 #no olvidar de que no se pueden dejar espacios en blanco
printf  "Hello $var"
printf  'Hola '$var
#BUT! if you use this...
printf 'Hola $var'
# this will print $var literally, and not what is inside the variable.

#Comparar en un IF
if [ "$var" = "texto" ] #No olvidar los espacios despues del corchete y que al comparar con texto
                                # hay que poner solo "=" y el contenido de la variable junto con el texto en comillas """

echo "${param[ `expr $n + 1 `]}" # para imprimir un parametro con una operacion matematica
# imprimir a partir de un parametro con posicion "n" hay 2 formas

echo "${param[n]}"

echo "${param[$n]}"


Ejemplo de imprimir una linea separada de ";"
cat nombreFicheroaLeer | while read linea

do

#linea="AAA;BBB;CCC" haciendo prueba de una sola linea
EE=$(echo "$linea" | awk -F ";" '{print $2}') #el print es la posicion a imprimir separada por ';'

echo "$EE"

#para pasarlo a un fichero se puede usar
#echo "$EE" >> nombreOtroFichero





lunes, 11 de marzo de 2013

Un pequeño programa en VB para quitar contraseñas a archivos Excel

Sub Quitar_contraseña() 
Dim a As Integer, b As Integer, c As Integer 
Dim d As Integer, e As Integer, f As Integer 
Dim a1 As Integer, a2 As Integer, a3 As Integer 
Dim a4 As Integer, a5 As Integer, a6 As Integer 
On Error Resume Next 
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66 
For d = 65 To 66: For e = 65 To 66: For a1 = 65 To 66 
For a2 = 65 To 66: For a3 = 65 To 66: For a4 = 65 To 66 
For a5 = 65 To 66: For a6 = 65 To 66: For f = 32 To 126 
Contraseña = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(a1) _ 
& Chr(a2) & Chr(a3) & Chr(a4) & Chr(a5) & Chr(a6) & Chr(f) 
ActiveSheet.Unprotect Contraseña 
If ActiveSheet.ProtectContents = False Then 
MsgBox "Fuck Yeah" & vbCr & "Se ha quitado la contraseña:" & vbCr & Contraseña 
Exit Sub 
End If 
Next: Next: Next: Next: Next: Next 
Next: Next: Next: Next: Next: Next 
End Sub

viernes, 20 de mayo de 2011

Concatenar cadenas de caracteres C# (C Sharp)

string s1 = "A string is more ";
string s2 = "than the sum of its chars.";

// Concatenate s1 and s2. This actually creates a new
// string object and stores it in s1, releasing the
// reference to the original object.
s1 += s2;

System.Console.WriteLine(s1);
 
Se usa: "+=" para concatenar 

Apuntes Básicos de C# (C Sharp)

Probado solo en Modo Consola por ahora:

Using: es como poner una librería

Namespace es para poder ordenar tus clases dentro de espacios

Main: Importante, siempre tiene que ir, es de donde todo se inicializa

Modo consola: si se está usando el modo Consola ( System.Console.....) y quieres que la pantalla se quede pitando poner lo siguiente: System.Console.ReadKey();

Asignar valor: En el modo Consola(No probe otro modo aún) se usa lo siguiente:
x = int.Parse(System.Console.ReadLine());

Escribir por pantalla: Console.WriteLine("x == 1");


Un Ejemplo de Clases, Objetos y métodos:


using System; //Como si se usara una librería

class SampleClass //La Clase que se está creando
{
    public void SayHello() // el método que esta dentro de la clase
    {
        Console.WriteLine("Hola Mundo!");
    }
}

class Program
{
    //Main es el punto de partida, donde todo programa C# empieza 
    static void Main(string[] args)
    {
        SampleClass sampleClass1 = new SampleClass();  // Crea un objeto
        sampleClass1.SayHello();                       // Llama al método
    }
}
 
Importante: No olvidar los ";"

miércoles, 9 de febrero de 2011

DHCP en linux

primero instalar el servidor "dhcp" con:

sudo apt-get instal dhcp-server

una vez instalado entramos al directorio de dhcp3 que está localizado en /etc

lo podemos buscar con ....... ls -d dh* y aparece

una vez dentro, para configurarlo tenemos que entrar al fichero dhcpd.conf
podemos poner ......... cat dhcp.conf

una vez dentro podemos modificarlo a nuestro gusto:

ejemplo en la parte

Para asignar una IP a una direccion MAC
#host passacaglia {
#  hardware ethernet 0:0:c0:5d:bd:95;
#  filename "vmunix.passacaglia";
#  server-name "toccata.fugue.com";
#}


Para crear subredes:
#subnet 10.254.239.32 netmask 255.255.255.224 {
#  range dynamic-bootp 10.254.239.40 10.254.239.60;
#  option broadcast-address 10.254.239.31;
#  option routers rtr-239-32-1.example.org;
#}


<<>>

jueves, 27 de enero de 2011

Crear tareas contrab (linux)

Para crear tareas en linux poner crontab -e luego la opción 2 (más visual)

# m h dom mon dow command

#minute hour dayofmonth dayofweek "comando"

completar con asteriscos lo que no se va a usar y en el campo de díadesemana es de 0 a7 (0 y 7 son Domingo) hora de 0-23 minuto del 0-59 diademes 1-31 mes 1-12

---- con el slash (/) antepuesto al número es para ejecutar el comando cada cierto tiempo

ejemplo:

# m h dom mon dow command
   */1 *   *      *       *    mkdir /home/ejar/Escritorio/Archivo

tambien se puede poner cosas como meses del 1 al 5 con 1-5

tambien se pueden unir

ejemplo:

* 3-23/3 * * * comando


---------------------------------------------------------------------------------------------------

Cada usuario tiene un fichero para programar las tareas y con el comando contrab se edita.

contrab -e -> es para editar el fichero del propio usuario
(Ojo: al editarlo si quieres guardarlo se pone Ctrl+X y se guardan los cambios)

contrab -l -> muestra el contenido del fichero contrab del usuario

se puede especificar el usuario con el comando "contrab -u nombreusuario" -e, -l (la opcion)

Tambien:

Existen cadenas de caracteres especiales

Cadena       Significado
@daily        0 0 * * *
@hourly      0 * * * *
@midnight  como el @daily
@weekly     0 0 * * 0
@monthly   0 0 1 * *
@yearly      0 0 1 1 *
@annually  como @yearly

viernes, 14 de enero de 2011

Configurar IP

#### para ver lo compartido via samba, poner "Ctrl+L" en el explorer luego...
#### smb://172.16.205.30 (<--- esa es la IP)


#Ejemplo de configuracion de IP desde Shell

#!/bin/bash

sudo ifconfig eth0 172.16.205.6 netmask 255.255.0.0 up
sudo route add default gw 172.16.0.1
ifconfig

#Fin

Mediante Switch case

case $1 in
a)....

viernes, 17 de diciembre de 2010

Comparar cadenas de caracteres

#!/bin/bash

echo escribe una palabra
read PAL1
echo escribe otra palabra
read PAL2

if [ -z "$PAL1" ]; then  "la opción -z es para ver si hay valores nulos"
 echo no puede haber valores nulos
 exit
elif [ -z "$PAL2" ]; then "al poner la variable entre comillas dobles"" es para que tenga en cuenta espacios en blanco
 echo no puede haber valores nulos
 exit
fi

if [ "$PAL1" \> "$PAL2" ]  "para cualquier operación siempre anteponer el backslash "\" "
then
 echo la mayor es "$PAL1"
else
 echo la mayor es "$PAL2"
fi

jueves, 16 de diciembre de 2010

SQL ORACLE

para ver las tablas creadas:

select table_name
from user_tables;

ejemplo de ejercicio:

CREATE TABLE Psicologos( -------------------------> crea la tabla
NIF        Varchar2(10),            
-------------------------> atributo y tipo de datos
Nombre        Varchar2(15) NOT NULL,
Apellido1    Varchar2(15) NOT NULL,
Apellido2    Varchar2(15),
Especialidad    Varchar2(15) NOT NULL,
Direccion    Varchar2(50),
 Constraint PK_Psicologos PRIMARY KEY (NIF)
-------------------------> clave primaria
);

CREATE TABLE Pacientes(
NIF        Varchar2(10),
Nombre        Varchar2(15) NOT NULL,
Apellido1    Varchar2(15) NOT NULL,
Apellido2    Varchar2(15),
Fec_Nacim    Date NOT NULL,
Telefono    Varchar2(10),

 Constraint PK_Pacientes PRIMARY KEY (NIF),
 Constraint CH_fec_nacim CHECK (Fec_Nacim >= TO_DATE('01/01/1900','DD/MM/YYYY'))
);
-------------------------> check de restricciones y  ");" es para terminar

CREATE TABLE Transtornos (
Cod_Transtorno    Number(5),
Nombre        Varchar2(25) NOT NULL,
Sintomas    Varchar2(250) NOT NULL,
 Constraint PK_Transtornos PRIMARY KEY (Cod_Transtornos),
 Constraint CH_Cod_trans CHECK (Cod_Transtornos >=0)
);

CREATE TABLE Terapias (
Cod_Terapia     Number(5),
Nombre        Varchar2(25) NOT NULL,
Observaciones     Varchar2(250) NOT NULL,
 Constraint PK_Terapias PRIMARY KEY (Cod_Terapia),
 Constraint CH_Cod_terap CHECK (Cod_Terapia >=0)
);

CREATE TABLE Sesiones(
NIF_PS        Varchar2(10),
NIF_PA        Varchar2(10),
Cod_Transtorno    Number(5),
Cod_Terapia    Number(5),
Fecha        Date,
 Constraint PK_Sesiones PRIMARY KEY (NIF_PS,NIF_PA,Cod_Transtornos,Cod_Terapia,Fecha),
 Constraint CH_Fecha CHECK (Fecha >= TO DATE('01/01/1990','DD/MM/YYYY')),
 Constraint FK_ses_psi     FOREIGN KEY (NIF_PS)
            REFERENCES Psicologos (NIF)
            ON DELETE CASCADE,
 Constraint FK_ses_pa    FOREIGN KEY (NIF_PA)
            REFERENCES Pacientes (NIF)
            ON DELETE CASCADE,
 Constraint FK_ses_pa    FOREIGN KEY (NIF_PA)
            REFERENCES Pacientes (NIF)
            ON DELETE CASCADE,
);
----------------------------------- Inserción de datos ------------------------------------
INSERT
INTO Psicologos --------> en la tabla
VALUES ('PS123456','JUAN,'PÉREZ',GARCÍA','CLÍNICA','C/REAL'); ----> valores

INSERT
INTO Pacientes
VALUES ('PA123444','MARÍA','GARCÍA','LÓPEZ',TO_DATE('12/12/1980','DD/MM/YYYY'),'666666');

INSERT
INTO Transtornos
VALUES (100,'JORCH','SINTOMAS');

INSERT
INTO Terapias
VALUES (1,'PSICOANÁLISIS','OBSERVACIÓN');

INSERT
INTO Sesiones
VALUES('PS123456','PA123444',100,1,SYSDATE);

COMMIT; --------------------------------> es para validar los cambios

viernes, 26 de noviembre de 2010

Ejemplos Shell (linux)

.........................................inicio (test -L)...............................................
#!/bin/bash

if test -L $1; then #devuelve verdadero o falso, si test -L es verdadero entonces es un enlace simbolico
 echo $1 es un enlace simbolico
else
 echo $1 no es un enlace simbolico
fi
.................................................fin.........................................................

jueves, 25 de noviembre de 2010

ls -l (nombre) | cut -d " " -f1
wc -l ..... cuenta lineas
ps (procesos) -ef ... (unproceso?)
cut -d: -f2 .... -d es el delimitador y -f es la fila ... ejem: -f1-3 (del 1 al 3)

miércoles, 24 de noviembre de 2010

Opciṕn Test (Linux

test -f ( si es un fichero devuelve 0)
test -s (si el tamaño es mayor a 0 devuelve 0)
test -d (si es un directorio devuelve 0)
test -x (si tiene permiso de ejecución devuelve 0)

en lugar de test se pueden usar corchetes
---------------------------------------(en el fichero.sh)........................................................
[ -d /home ]
echo $?
.....................................................(fin)..............................................................
Evaluar cadenas de caracteres
...................................................(en el fichero.sh)............................................
#[ cadena1 = cadena2 ]
[ "$1" = "$2" ]
echo $?
[ "$1" != "$2" ]
echo $?
....................................................(fin)...............................................................

.................................................(en el fichero.sh).............................................

#Comparar numeros
# -eq (igual)
# -ne (distinto de)
# -lt (menor que)
# -gt (mayor que)
read N1
read N2

[ $N1 -eq $N2 ]
echo $?
[ $N1 -ne $N2 ]
echo $? 
[ $N1 -lt $N2 ]
echo $?
[ $N1 -gt $N2 ]
echo $?
....................................................(fin).............................................................................................................................(fichero.sh)..............................................
# usar el if
if [ -d $1 ]
# ve si existe el directorio
then ls -ld $1
elif [ -f $1 ]
# ve si es un fichero
then
cat $1
else
echo creo que no existe
fi
.............................................................(fin)............................................................

jueves, 18 de noviembre de 2010

Linux (shell)

Escribir comandos en un fichero de texto
Guardar el fichero
Dar permisos de ejecución (chmod +x nombrefichero)
Escibir en la consola ./nombrefichero
Argumentos de un Shell
Hay q crear un fichero con extensión “.sh”
$0 => Argumento/parámetro 0     (dólar cero es el Argumento del programa (donde está)) (imprime)
$# => guarda el número de argumentos que recibe el programa
$* => guarda la cadena de argumentos (excluyendo $0)
$? => guarda el código de retorno de la última orden ejecutada (0 si no hay error, distinto de 0 si lo hay)
Operadores:
+ sumar
-restar
*multiplicar
/dividir
% para el resto de la división
Ejemplo:
Read a b
C=`expr $a\*$b`
Echo $c
Alternativa:

En vez de usar "expr" se puede usar los operadores [corchetes]


Operadores relacionales

Sirve para empezar palabras argumentos, números...
Si el resultado de la comparación es cierto, devuelven 1,
Si es fichero, devuelven 0
=  (compara si son iguales)
!= (distinto)
> (mayor que)
< (menor que)
Hay que usarlos con \
\>    \<
>= (mayor o igual)  <=(menor o igual)


Operadores lógicos

Se usan para comparar 2 argumentos (arg1, arg2).  
devuelven un argumento o parte del otro






& -> Y arg1 & arg2


Si arg1 y arg2 son distintos de cero, el resultado es arg1, si no, el resultado es arg2
: (2 puntos)
argi : arg2
arg2 es el patrón buscado en arg1. Si el patrón arg 2 está encerrado entre paréntesis \( u \), el resultado es la parte de arg1 que coincide con arg2, si no, el resultado es el número de caracteres que cpinciden.
NOTA:  | y  ¬ deben ir precedidos de \ ... \|, \&


Ejemplo:
  a= junio_2001
  b=`expr $a :'\([a-z]*\)'`
  echo b
 

viernes, 12 de noviembre de 2010

ejemplo de recursividad en C++

#include
main()[
long int x,y;
printf("Escribe un numero\n");
scanf("%li",&x);
y=factorial (x);
printf("%li",y);
}
long int factorial(long int n){
if (n==1) return1;
else return n*factorial (n-1)
}

miércoles, 3 de noviembre de 2010

(linux)

Comando chfn:
permite cambiar la informacion del contacto del usuario


.
.
.

Fichero /etc/fstab: es para montar automaticamente

Este fichero contiene la informacion necesaria para automatizar el proceso de montaje de las particiones.
En general,se usa para dispositivos internos, CD/DVD, Comparticiones por red (NFS, Samba) y dispositivos extraibles

Si un dispositivo o particion no aparece en /etc/fstab, solo lo puede montar el root.

Campos:

 -Dispositivo (device)
 -Punto de montaje (mount point)
 -Sistema de ficheros (file system type)
 -Opciones
 -Dumb
 -Pass
 -Dispositivos: dispositivo o particion que queremos  montar.

 Dispositivos => /dev/sda1       (a,b,c, el dispositivo; 1,2,3 la particion; sd= SCSI)
                            /dev/sda2
                            /dev/sdb1
                            /dev/hda3
o identificados por el nombre UUID
sudo blkid => listar nombres UUID

para montar ... ejemplo:
cd media
sudo mkdir windows(ejemplo)
sudo mount -t ntfs /dev/sda1 wondows (puedes ver donde está el dispositivo con "blkid")
cd windows
ls (y ya está)
... para desmontar ... sudo umont windows
cd windws
ls (y ya no está)



Carpeta compartida vía NFS
IP_Servidor: ruta_local_directorio_compartido
172.16.205.87 : /home/carpeta_compartida

Carpeta compartida vía samba:
//servidor/Carpeta_compartida (*-IP ó Nombre Netbios)


Sistemas de ficheros:

sistemas de ficheros... que se va a montar

Ejemplos:
auto: determine automaticamente el sistema de ficheros
ntfs: ntfs-sg
        rw

Punto de montaje:

-ntfs para carpetas compartidas vía NFS (Network File System)

Opciones:
-defaults: rw, exec, nouser
                auto, async

-Sync /async: la entrada y la salida al sistema de ficheros debería ser sincrona/asincrona

- auto: el sistema de ficheros se puede montar automaticamente, al iniciar el sistema o con el comando mount -a ... -a = montar todo lo que esté especificado en el fichero /etc/fstb

-noauto: hay que montar explicitamente el sistema de ficheros

-exec/noexec: permitir/no permitir la ejecucion de binarios en el sistema de ficheros

-ro: solo lectura (read only)

-rw:lectura y escritura.

-user: permitir a cualquier usuario montar el sistema de ficheros. Implica noexec

-nouser: solo permite al montar el sistema de ficheros

Dump:

Sirve para indicar que se hagan copias de seguridad del sistema de ficheros.
El valor 0 es para que no se haga, 1 para que sí.

Pass:

Para indicar si hay que chequear que el sistema de ficheros (ejecutar el comando fsck)
Valores:

0 => no chequear

Comando usermod (linux)

Se usa para modificar algunas propiedades del los usuarios
Opciones:
  -g: para cambiar el grupo principal del usuario
  -G: para cambiar o especificar los grupos secundarios del usuario (si se escribe mas de un grupo se separan por comas)
  -e: YYY-MM-DD indica cuando expira la cuenta del usuario
 

simple tracker
Flowers Roses