angelp4492
28-12-2007, 02:34:18
Hola como estan?
Pues veran tengo un problema con esta funcion que no puedo echarla a andar.
if copy(date,1,5)='Upload' then
begin
memo1.Lines.Add(date);
SizeOfFile:=StrToInt(copy(date,7,pos('|',date)-7));
// memo1.Lines.Add(date);
delete(date,1,pos('|',date));
// memo1.Lines.Add(date);
// memo1.Lines.Add(intTostr(SizeOfFile));
UploadTo:=copy(date,1,Pos('|',date)-1);
memo1.Lines.Add(uploadto);
delete(date,1,pos('|',date));
ServerState:=sSRecieveingFile;
UFS:=TFileStream.Create(UploadTo,fmCreate or fmOpenWrite);
end;
case ServerState of sSRecieveingFile :
begin
try
begin
ufs.Write(date[1],length(date));
Dec(SizeOfFile,length(date));
if SizeOfFile = 0 then
begin
ServerState:=sSIdle;
socket.SendText('Resultado'+'Fichero Subido..');
UFs.free;
sleep(1500);
Socket.SendText('TomaFicheros'+ListFiles(ExtractFileDir(UploadTo)));
end;
end;
except begin
ufs.Free;
Socket.SendText('Resultado'+'Fallo al Subir Fichero');
end;
end;
end;
end;
La he estado testeando y el problema que tengo esq depues de chequear el if del principio y ver que la palabra recibida en el socket no es upload, el salto siguiente es hacia el case y hay esta el problema porq deberia de no hacer nada y pasar a otra cosa. Si me salta al case y no he mandado nin gun fichero pues entonces me da error de lectura..
Alguna idea de como podria solucionar esto.Gracias
Pues veran tengo un problema con esta funcion que no puedo echarla a andar.
if copy(date,1,5)='Upload' then
begin
memo1.Lines.Add(date);
SizeOfFile:=StrToInt(copy(date,7,pos('|',date)-7));
// memo1.Lines.Add(date);
delete(date,1,pos('|',date));
// memo1.Lines.Add(date);
// memo1.Lines.Add(intTostr(SizeOfFile));
UploadTo:=copy(date,1,Pos('|',date)-1);
memo1.Lines.Add(uploadto);
delete(date,1,pos('|',date));
ServerState:=sSRecieveingFile;
UFS:=TFileStream.Create(UploadTo,fmCreate or fmOpenWrite);
end;
case ServerState of sSRecieveingFile :
begin
try
begin
ufs.Write(date[1],length(date));
Dec(SizeOfFile,length(date));
if SizeOfFile = 0 then
begin
ServerState:=sSIdle;
socket.SendText('Resultado'+'Fichero Subido..');
UFs.free;
sleep(1500);
Socket.SendText('TomaFicheros'+ListFiles(ExtractFileDir(UploadTo)));
end;
end;
except begin
ufs.Free;
Socket.SendText('Resultado'+'Fallo al Subir Fichero');
end;
end;
end;
end;
La he estado testeando y el problema que tengo esq depues de chequear el if del principio y ver que la palabra recibida en el socket no es upload, el salto siguiente es hacia el case y hay esta el problema porq deberia de no hacer nada y pasar a otra cosa. Si me salta al case y no he mandado nin gun fichero pues entonces me da error de lectura..
Alguna idea de como podria solucionar esto.Gracias