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ú

Mensajes - Khronos14

#291
MasterPunk, ¿por qué te metes con la API de Windows si todavía no sabes programar?

Las funciones tienen que devolver un valor, no creo ni que te compile. Además estas haciendo un bucle infinito en ambas funciones.

Si recuerdo bien, la función CopyFile tiene 3 parámetros. El primero es el archivo que vas a copiar (tiene que existir), el segundo es la ruta del destino, y el tercer parámetro de tipo BOOL describe si se puede sobreescribir el archivo. La función CopyFile devuelve TRUE si tiene éxito.

Saludos.
#292
Programación C/C++ / Re: Ayuda array
30 Mayo 2011, 16:24 PM
¿Algo como esto?

Código (cpp) [Seleccionar]

#include <iostream>

using namespace std;

int main(int argc, char * argv[])
{
char buffer[20];
cout << "Introduce una cadena: ";
cin.get(buffer, 20);

for (int i = 0; i < strlen(buffer) - 1; i++)
{
if (buffer[i] == buffer[i + 1])
cout << "1";
else
cout << "0";
}

return 0;
}


Saludos.
#293
Visual Basic no te va a servir de nada. C podrías usarlo con cgi-bin, pero no te lo recomiendo para nada. Lo único que te va a servir es la sintaxis de C para aprender PHP.

Vas a necesitar saber: HTML, CSS, PHP o ASPX, AJAX; y además grandes conocimiento de bases de datos para la creación de las tablas. Te recomiendo MySQL si usas PHP y SQLServer con ASPX.

En 5 meses creo que podrías manejar decentemente todos estos lenguajes y tecnologías. Lo difícil es que una persona desarrolle toda una red social ella sola, porque hay muchísimo trabajo por detrás.

Creo que ese proyecto te queda bastante grande, si conocieras los lenguajes de programación y no empezaras de cero.. podría ser viable, porque el desarrollo de las tablas y bases de datos va a ser lo más complicado de todo...
#294
Utiliza la función InternetReadFile y vas guardando el contenido del fichero en un buffer. Es muy sencillo de hacer, con punteros te queda más pro pero tienes que andar volviendo a reservar memoria cada vez que lees. La forma más sencilla es usando la clase string de C++ con el método append().

Saludos.
#295
Creo que el parámetro era -mswindows.

Saludos.
#296
Prueba con esto:

Código (cpp) [Seleccionar]

scanf("%[^\n]", v[*pnumero].nombre);


Si no, puedes utilizar fgets.

Saludos.
#297
Programación C/C++ / Re: Error con vectores!
22 Mayo 2011, 22:56 PM
El error están en la manera que recorres los arrays. Si declaras un array de tamaño 10, la primera posición es el 0 y la última es el 9. Tú estás recorriendo el array del 1 al 11 y produces un BufferOverflow.

Saludos.
#298
El código que te puse a mi me funciona perfectamente. En el Form solo tengo un botón, un TClientSocket y un TServerSocket.

Saludos.
#299
El principal problema está en la función SendStream, que no envía archivos mayores que 8192 bytes, no se porqué. La solución es hacer un pequeño algoritmo para que lea del fichero y a la vez los mande por un socket.

Código (delphi) [Seleccionar]

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScktComp, StdCtrls;

type
  TFMain = class(TForm)
    ClientSocket1: TClientSocket;
    ServerSocket1: TServerSocket;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FMain: TFMain;
  fsToReceive: TFileStream;

implementation

{$R *.dfm}

procedure TFMain.Button1Click(Sender: TObject);
var
Buff: array [0..1023] of byte;
BytesRead: integer;
fsToSend: TFileStream;
begin
  try
    fsToSend:= TFileStream.Create('C:\prueba.mp3', fmOpenRead or fmShareDenyWrite);
    fsToSend.Seek(0, 0);

    repeat
      FillChar(Buff, 1024, 0);
      BytesRead:= fsToSend.Read(Buff, 1024);
      Application.ProcessMessages;
      if BytesRead > 0 then
        ServerSocket1.Socket.Connections[0].SendBuf(Buff, SizeOf(Buff));
    until fsToSend.Position = fsToSend.Size;

  finally
    fsToSend.Free;
  end;
end;

procedure TFMain.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
BytesRead: integer;
Buff: array [0..1023] of byte;
begin
  if Assigned(fsToReceive) = false then
    fsToReceive:= TFileStream.Create('C:\recibido.mp3', fmCreate or fmOpenReadWrite);

  FillChar(Buff, 1024, 0);
  BytesRead:= Socket.ReceiveBuf(Buff, 1024);
  fsToReceive.Write(Buff, BytesRead);
end;

procedure TFMain.FormCreate(Sender: TObject);
begin
  try
    ServerSocket1.Active:= True;
    ClientSocket1.Active:= True;
  Except on Exception do
    raise Exception.Create('Ocurrió con el servidor o con el cliente');
  end;
end;

procedure TFMain.FormDestroy(Sender: TObject);
begin
  if Assigned(fsToReceive) then
    fsToReceive.Free;
end;

end.



Aquí la prueba la hice enviando desde el servidor, pero sería lo mismo desde el cliente.

Saludos.
#300
Las listas enlazadas es otro método de almacenamiento de información, se realiza todo con punteros.

http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)#Listas_Enlazadas_vs._Vectores_o_Matrices

Saludos.