Weblogs Código

RecorteX

» fichero
73 usuarios y 243 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta fichero

RSS
Recortes: 4

Etiquetas relacionadas:
php
escribir
stringlist
formato
leer
loadfromfile
delphi

Formatear tamaño de archivos

Esta simple funcion nos mostrara el tamaño de los archivos en bytes, Kbytes, Megas o Gb, podriamos mostrar tambien Teras pero de momento me parece que no es muy necesario, util en galerias de imagenes o listado de directorios.
 
function getsizebytes($sz)
{
	if($sz < 1024) return ($sz . " bytes");
	if($sz < 1048576) return (number_format($sz/1024, 2)." Kb");
	if($sz < 1073741824) return (number_format($sz/1048576, 2)." Mb");
 
	return (number_format($sz/1073741824, 2)." Gb");
}
 

Volcar fichero en cadena de carácteres

Cómo volcar un fichero en un String

$file = fopen("filename.ext", "rb");
$text = '';
while (!feof($file)) {
  $text .= fread($file, 8192);
}
fclose($file);

Volcar cadena de carácteres en fichero

Cómo meter el contenido de un String en un fichero
 
$file = fopen("filename.ext", "w");
$bOk  = fwrite($file, $text);
fclose($file);
 

Carga de un fichero de texto en un StringList

La clase TStringList es muy útil y muy utilizada por los programadores Delphi, contiene una lista de cadenas. Pero tiene sus fallos.

Uno de ellos es el procedimiento LoadFromFile que, como se indica, carga el contenido de un fichero en la lista. Yo me he encontrado con ficheros que se podían cargar perfectamente con el Notepad, pero el StringList.LoadFromFile no los cargaba correctamente. Por eso me hice este procedimiento que los carga correctamente.
 
procedure LoadFileToStringList(sl: TStringList; FileName: string);
const
  _BuffSize = 4096; // Cargamos en bloques de 4KB
var
  c: char;
  i: integer;
  R: integer;
  H: integer;
  s: string;
  B: PChar;
begin
 
  sl.Clear;
 
  B := PChar(AllocMem(_BuffSize + 1));
  H := FileOpen(FileName, fmOpenRead or fmShareExclusive);
 
  if H < 0 then
    raise Exception.Create('Error abriendo fichero' + #13#10 + '"' + FileName + '"');
 
  try
 
    repeat
 
      R := FileRead(H, B^, _BuffSize);
 
      for i := 0 to R - 1 do
      begin
 
        c := B[i];
 
        if (c in [#13, #10, #0]) then
        begin
          if (s <> '') then
            sl.Add(s);
          s := '';
        end
        else
          s := s + c;
 
      end;
 
    until R = 0;
 
  finally
    FileClose(H);
    FreeMem(B);
  end;
 
end;
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin