Función para convertir texto a ASCII...

Código: Seleccionar todo

def Text2ASCII(Cadena):
    i = 0 					           # Variable del bucle.
    Size = len(Cadena)		     # Longitud de la cadena.
    Temp = ''					        # Variable temporal, donde se construirá la cadena en ASCII.
    while i < Size:  				      # Instancia del bucle.
        Temp += str(ord(Cadena[i])) + ','  # Se empieza a contruir la palabra, usando la función ord().
        i += 1 					      # Aumentamos el valor de la variable del bucle.
    return Temp					        # Retornamos la palabra ya convertida.
Para más información y alternativas a éste código: [Enlace externo eliminado para invitados] ... viceversa/
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
yo aporto mi versión de consola en C++ (compilado con C++ Builder):

Código: Seleccionar todo

//---------------------------------------------------------------------------
#pragma hdrstop
#include <iostream.h>
#include <conio.h>
#include <string.h>
using namespace std;
//---------------------------------------------------------------------------
string text2Ascii(const string str){
  char* cstr = new char[3]; //almacena las 3 cifras del ASCII
  string tmp; //string acumulador
  unsigned int i = 0;
  for(i = 0; i<str.length(); i++){
       itoa(int(str.at(i)),cstr,10);
       tmp = tmp+cstr+",";
   }
  delete cstr; cstr = NULL; //se elimina el puntero
  return tmp; //devuelve la string acumulada
}
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
        char text[30];
        clrscr();
        cout << "STRING TO ASCII CONV. BY R-007" << endl;
        cout << "------------------------------" << endl;
        cout << "Introduzca una cadena (max = 30 char):"  ;
        cin >> text;
        cout << "------------------------------" << endl;
        cout << "Texto: " <<text << endl;
        cout<< "ASCII: "<<text2Ascii(text) << endl;
        cout << "------------------------------" << endl;
        cout << "Texto convertido con exito. Presione cualquier tecla para salir..." << endl;
        getch();
        return 0;
}
//---------------------------------------------------------------------------
Espero que les haya gustado mi aporte. Un saludo! R-007
R-007 varias cosas para tu código:

1 - La declaración de iostream.h está mala, ya que es una cabecera antigua y los compiladores nuevos te tirarán error, en su defecto, usa #include <iostream>

2 - No uses la cabecera conio.h, está obsoleta. En su defecto usa la función getchar(); de iostream.

3 - Los pragmas no son necesarios.
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
1 - La declaración de iostream.h está mala, ya que es una cabecera antigua y los compiladores nuevos te tirarán error, en su defecto, usa #include <iostream>

2 - No uses la cabecera conio.h, está obsoleta. En su defecto usa la función getchar(); de iostream.
1.- La declaración de iostream depende del compilador, da igual si es antiguo o nuevo, por lo que la declaración es correcta, en algunos tira error si no pones iostream.h en otros da error si pones iostream...

2.- La librería conio.h no es que esté obsoleta si no que no es una de las librerías estandar de C/C++ por lo tanto la mayoría de los compiladores la desconocen y aveces ocasiona problemillas por ahí

3.- En php...

Código: Seleccionar todo

<?php
function txt2ascii($cadena)
{
  $n="";
  for($i=0;$i<strlen($cadena);$i++)
    $n.=ord($cadena[$i]).',';
  return $n;
}

//uso 
echo txt2ascii("hola soy linkgl");
?>
Realmente es una función muy simple ;)
//mHmm..
sí... se que la librería conio.h no es una librería standard y que no se debe usar (hasta ahí bien)
pero si os dais cuenta he usado también la función clrscr(); de conio.h (aparte del getch() que se que se podría hacer con el getchar() o con system(PAUSE)).si conoceis alguna forma de hacer clrscr() sin usar conio.h me gustaría saberlo, les estaré muy agradecido.
WindHack escribió:1 - La declaración de iostream.h está mala, ya que es una cabecera antigua y los compiladores nuevos te tirarán error, en su defecto, usa #include <iostream>
yo he dado c++ en la universidad y se que ambas declaraciones hacen lo mismo y que solo depende del compilador que deje compilar, por eso he dicho que he compilado en Borland C++ Builder (5 para ser mas exactos).

A lo que iba... aparte de que compile o no en otro compilador distinto, el que sepa c++ y quiera implementarlo.. solo tendrá que fijarse en la declaración de la función text2Ascii que tan solo utiliza la libreria de string.
Yo también iba a postearla en Php pero me pareció "menos trivial" hacerlo en c++ puesto que no hay una función Ord() predefinida.

Un saludo señores! Un placer!
R-007
muchisimas gracias linkgl!!! llevaba TIEMPO intentando buscar una solución a eso!
bueno creo que me verán codeando MUY a menudo, tanto en vb, como en delphi, c++, java, batch, vbscript o perl.. así que espero poder aportar mucho más y que nos podamos ayudar mutuamente

Un saludo! R-007
Sí es cierto que declarar iostream.h no tiene problemas, pero si ese código se va a portar a otros compiladores más nuevos, tirará errores.

Es cuestión de gustos y de portabilización de código.

Referente a conio.h hay otra alternativa mucho más efectiva que es ncurses.h ( [Enlace externo eliminado para invitados] )
__
bueno creo que me verán codeando MUY a menudo, tanto en vb, como en delphi, c++, java, batch, vbscript o perl.. así que espero poder aportar mucho más y que nos podamos ayudar mutuamente
Sí, igualmente me verán programando muy a menudo en: Delphi (ObjectPascal), Oxygen (Delphi Prism), C++, PHP, Ruby, Python, Perl, entre otros lenguajes.

;)
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
gracias WindHack! probaré el Ncurses a ver que tal funciona ;)
se agradecen consejos de CALIDAD como los que disteis ^^, un saludo!

Código: Seleccionar todo

=begin
####################################
# Ruby 1.9.1                       # 
# Texto a ASCII                    #
# Autor: WindHack                  #
# Sitio web: http://daw-labs.com   #
####################################
=end                                
                                
puts 'Texto a ASCII'
puts 'Introduce la cadena: '
Cadena = gets.chomp                                        
tmp = ''            
Cadena.each_byte do |ascii|
    tmp += ascii.to_s + ',' 
end      
puts tmp 
Imagen

Imagen

Imagen

"The only thing they can't take from us are our minds."
en Ruby si que se ve resumido el code!

celebro mi post 300 con ustedes jejejeje!
Un saludo! R-007
Responder

Volver a “Fuentes”