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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Desarrollo Web / [AUXILIO] Insertar string JSON en: 26 Septiembre 2019, 04:06 am
Este código me está enloqueciendo:

Código
  1. function mostrar(jsonStr : string) {
  2.    console.log(typeof jsonStr );
  3.    console.log(jsonStr);
  4.    let jsonObj = JSON.parse(jsonStr );
  5.    alert(`Id: ${jsonObj.Id} - Marca: ${jsonObj.Marca} -  Precio: ${jsonObj.Precio} -  Color: ${jsonObj.Color} - \
  6.    Modelo: ${jsonObj.Modelo}.`);
  7. }
  8. function leer() {
  9.    let tabla = "<table border='1'><thead><th>Id</th><th>Marca</th><th>Precio</th><th>Color</th><th>Modelo</th>\
  10.    <th>Action</th></thead><tbody>";
  11.    let xhttp = new XMLHttpRequest();
  12.    xhttp.onreadystatechange = () => {
  13.        if( xhttp.readyState == 4 && xhttp.status == 200) {
  14.            let jsonObj = JSON.parse(xhttp.responseText);
  15.            for(let i = 0 ; i < jsonObj.length ; i++) {
  16.                let g  = JSON.stringify(jsonObj[i]);
  17.                console.log(typeof g);
  18.                console.log(g);
  19.                tabla += "<tr>";
  20.                tabla += `<td>${jsonObj[i].Id}</td>`;
  21.                tabla += `<td>${jsonObj[i].Marca}</td>`;
  22.                tabla += `<td>${jsonObj[i].Precio}</td>`;
  23.                tabla += `<td>${jsonObj[i].Color}</td>`;
  24.                tabla += `<td>${jsonObj[i].Modelo}</td>`;
  25.                console.log(JSON.stringify(jsonObj[i]));
  26.                tabla += "<td><input type='button' value='ver' onclick=\"mostrar(\'"+JSON.stringify +"\')\"</td>"; // AQUI
  27.                tabla += "</tr>";
  28.            }
  29.            tabla += "</tbody></table>";
  30.            (<HTMLDivElement>document.getElementById("result")).innerHTML += tabla;
  31.        }
  32.    }
  33.    xhttp.open("GET", "./json_test.php", true);
  34.    xhttp.send();
  35. }
  36.  

Donde esta el aquí no hay manera de que me reconozca las comillas que rodean al parametro de la funcion mostrar ( Que es un objeto json convertido a string). Probé de mil maneras y si consigo que funcione lo hace con comportamientos extraños. En la funcion mostrar en vez de recibir un string recibo un object. Evidentemente por la falta de las comillas que rodean el parametro. Ayuda por fa.
2  Programación / PHP / Realizar un echo e ir concatenando en un documento html[RESUELTO] en: 15 Septiembre 2019, 06:24 am
Hola comunidad elhacker.net mi problema es respecto a este codigo:
Código:
<!--Aplicación Nº 41 (Galería de Imágenes)
Amplíe el ejercicio de la galería de fotos realizada anteriormente y permita al usuario añadir nuevas fotos.
Para ello hay que poner el atributo enc_type=”multipart/form-data” en el FORM y usar la variable $_FILES['foto'].-->
<?php
/* Leo el numero con el que se guardara el archivo y guardo el numero para el siguiente*/
if (isset($_FILES["foto"]["name"])) {
    $file = fopen("./images/photo_index.txt", "r+");
    $photoNum = intval(fread($file, filesize("./images/photo_index.txt")));
    fwrite($file, strval(++$photoNum));
    fclose($file);

    $path = "./images/foto$photoNum." . pathinfo($_FILES["foto"]["name"], PATHINFO_EXTENSION);
    move_uploaded_file($_FILES["foto"]["tmp_name"], $path);
    $tabla = "<tr><td><img src='$path' width='100px' height='100px'></td><td>" . $_POST["descripcion"] . "</tr>";
}
?>
<!DOCTYPE html>
<html lang="es">

<head>
    <script type="text/javascript" src="./javascript/functions.js"></script>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Imagenes</title>
</head>

<body>
    <form method="POST" enctype="multipart/form-data" action="index.php">
        <fieldset style="width:15em;">
            <legend>Agregar nuevas fotos al servidor</legend>
            Foto: <input type="file" name="foto" accept="image/jpg,jpeg"><br />
            Descripción: <input type="text" name="descripcion" style="width:20em"><br />
            <input type="submit" value="Enviar" >
        </fieldset>
    </form>
    <table border="1">
        <thead>
            <th>Fotos</th>
            <th>Descripción</th>
        </thead>
        <tbody id="1">
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje1.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a> </td>
                <td>Bosque mágico</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje2.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Cataratas</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje3.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Playa montañosa</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje4.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Cascadas</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje5.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Pradera</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje6.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Pradera otoñal</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje7.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Río y cascadas</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje8.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Playa mágica</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje9.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Perú</td>
            </tr>
            <tr>
                <td><a href="./original.html"><img src="./images/paisaje10.jpg" width="100px" height="100px" onclick="saveSelectedImg(this)"></a></td>
                <td>Bosque de otoño</td>
            </tr>
            <?php
            if(isset($_FILES["foto"]) ){
                echo $tabla;
            }
            ?>
        </tbody>
        </thead>
    </table>
</body>

</html>
Es un formulario que genera una tabla con imágenes. La parte que me esta complicando es el echo de $tabla que se hace abajo. La idea es que a medida que el usuario cargue fotos ese echo vaya 'concatenando' filas . El problema es que a medida que cargo fotos se van sustituyendo en vez de concatenarse. ¿Como puedo hacer para que el echo vaya concantenando nuevo codigo html?
3  Programación / Programación C/C++ / Re: [ANSI C] Si guardo punteros dinamicos en un archivo ¿Debo hacer free? en: 1 Julio 2018, 02:23 am
Excelente! Muchisimas gracias por tu aporte mafus!! tengo una duda mas y ya esta :D
Cuando yo guardo datos dentro de un archivo binario, se guarda el contenido no?
La direccion de memoria solo se necesita para el copiado verdad(junto con los bytes)?

Código:
FILE* pf;

int vector[5]={0,1,2,3,4};

pf = fopen("numeros.bin","wb");

fwrite(vector,sizeof(int),5,pf );

fclose(pf);
4  Programación / Programación C/C++ / Re: Retornar punteros char? ¿Si o si memoria dinamica? en: 26 Junio 2018, 22:39 pm
Como ya te han dicho antes, en c no hay tipo de datos string, luego solo queda trabajar con arreglos de chars (lo que viene siendo la propia imp!ementacion del tipo string). Ahora, si intentas devolver una variable local en una funcion los datos retornados seran inconsistentes e impredecibles ya que dicha variable local al salir de su ambito (funcion) sera eliminada del stack. Para lograr lo que quieres tienes un par de opciones:

1- Creas la variable en la funcion padre y la pasas como parametro por referencia

2- Usas variables globales, estáticas o memoria dinamica (como dijeron antes tienes que estar seguro de eliminarla cuando no la necesites)

3- Haces una copia de la variable retornada justo al salir de la funcion:
    Si es una cadena puedes usar strcpy, strncpy, etc. Para cualquier otro tipo de datos memcpy, copy, etc
    
Código
  1. char mystr[MAX_PATH];
  2. char *ptr = MyFunction();
  3. if(ptr != null)
  4. // evita bof
  5. strncpy(mystr, ptr, sizeof(mystr));

BONUS- Si trabajar estrictamente con char* no es un requisito entonces usa std::string al retornar de la funcion:
Código
  1. std::string mystr = MyFunction();

Saludos

Podrias mostrar un ejemplo mas detallado de la opcion 3 por favor?
5  Programación / Programación C/C++ / Re: [ANSI C] Si guardo punteros dinamicos en un archivo ¿Debo hacer free? en: 26 Junio 2018, 16:36 pm
Libera el vector osea todos eso doble puntero que reserve se liberan entonces? Pero claro dentro de ese vector se guardaban punteros que  contienen otras direcciones alas que free no llega ... Pero si hablamos de esto:

int** pointer = malloc(int**)malloc(sizeof(int*)*10 );

Reserve esto:

(pointer + 0);
(pointer + 1);
(pointer + 2);
(pointer + 3);
(pointer + 4);
(pointer + 5);
(pointer + 6);
(pointer + 7);
(pointer + 8);
(pointer + 9);

podria hacer esto:

*(pointer + 1) = (int*)malloc(sizeof(int));
*(pointer + 2) = (int*)malloc(sizeof(int));

Si yo quiero liberar el ARRAY doble punteros pero NO lo que guarda cada puntero.
Entonces debo hacer esto:

free(pointer);

y se habria liberado
(pointer + 0);
(pointer + 1);
(pointer + 2);
(pointer + 3).... ??????
pero no se habria liberado pointer[0][0];verdad???
6  Programación / Programación C/C++ / Re: [ANSI C] Si guardo punteros dinamicos en un archivo ¿Debo hacer free? en: 26 Junio 2018, 03:47 am
Gracias! Y una pregunta mas... Si yo declaro un doble puntero con malloc.

void** pointer =(void**) malloc(sizeof(void*) *10 );

Tendria 10 direcciones  de memoria cuyo elemento deberian ser un puntero simple a void...
si digo:

free(pointer)

tambien libera las direcciones de memoria contiguas que malloc me reservo?
es decir pointer+1, pointer+2 ... ¿No las puedo liberar no por separado no, a dichas direcciones no las tengo en una variable puntero.
7  Programación / Programación C/C++ / [ANSI C] Si guardo punteros dinamicos en un archivo ¿Debo hacer free? en: 25 Junio 2018, 10:10 am
Si guardo varios punteros a estructura reservados con malloc en un archivo de texto o binarios, debo liberar esos punteros?
8  Programación / Programación C/C++ / Re: Retornar punteros char? ¿Si o si memoria dinamica? en: 24 Junio 2018, 23:48 pm
Para retornar un puntero a char no queda otra que usar memoria dinamica?
9  Programación / Programación C/C++ / Re: Retornar punteros char? ¿Si o si memoria dinamica? en: 24 Junio 2018, 23:36 pm
Estoy trabajando en ANSI C , y realmente andar devolviendo cadenas dinamicas cada vez que le pido al usuario es muy molesto, no hay alguna forma de no usar memoria dinamica? Por que tengo una funcion que parsea y no carga memoria dinamica a una estructura, si yo luego quiero cargar mas cadenas a la estructura las cargaria dinamicas y tendria que liberar algunas.... Se vuelve loco  uno si anda devolviendo punteros dinamicos a cada rato y encima se mezclan cpn punteros estaticos.. Debe haber alguna manera en C de poder devolver cadenas
10  Programación / Programación C/C++ / Retornar punteros char? ¿Si o si memoria dinamica? en: 23 Junio 2018, 22:00 pm
Hola comunidad tengo dificultades con las funciones al retornar un puntero a char o asignandolos a un doble puntero pasado por parametro. ¿Si uno declara una cadena en una funcion y quiere llevarla a main, si un puntero toma esa cadena se desapila igual?
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines