Kezdőoldal » Számítástechnika » Programozás » Fájlok összefűzése Delphiben?

Fájlok összefűzése Delphiben?

Figyelt kérdés

Adott egy .jpg fájl, és egy .txt fájl.

Hogyan tudom őket egy fájlba rakni delphiben?

(És azután szétszedni)

?


2009. szept. 19. 20:51
 1/3 anonim válasza:

procedure TForm1.Osszefuzes(EgyikFile, MasikFile, Output:string);

var

File1, File2,

FileOut:file;

Buf:array[1..4096] of char; // A buffer elvileg akarmekkora is lehet

OlvasottBytetokSzama:integer;

FileMeret:integer;

c:integer;

begin

// Osszegzett file letrehozasa

AssignFile(FileOut, Output);

rewrite(FileOut, 1);


// Elso file megnyitasa

AssignFile(File1, EgyikFile);

reset(File1, 1);

EgyikFile:=ExtractFileName(EgyikFile);


// Masodik file megnyitasa

AssignFile(File2, MasikFile);

reset(File2, 1);

MasikFile:=ExtractFileName(MasikFile);


// Elso file nevenek eltarolasa (#0 karakterrel zarul)

for c:=1 to length(EgyikFile) do

Buf[c]:=EgyikFile[c];

Buf[length(EgyikFile) + 1]:=#0;


BlockWrite(FileOut, Buf, length(EgyikFile) + 1);


// Elso file meretenek eltarolasa

FileMeret:=FileSize(File1);

for c:=1 to 16 do

begin

Buf[c]:=char(FileMeret mod 256);

FileMeret:=FileMeret div 256;

end;


BlockWrite(FileOut, Buf, 16);


// Elso file eltarolasa

repeat

BlockRead(File1, Buf, SizeOf(Buf), OlvasottBytetokSzama);

BlockWrite(FileOut, Buf, OlvasottBytetokSzama);


until OlvasottBytetokSzama < SizeOf(Buf);


// Masodik file nevenek eltarolasa (#0 karakterrel zarul)

for c:=1 to length(MasikFile) do

Buf[c]:=MasikFile[c];

Buf[length(MasikFile) + 1]:=#0;


BlockWrite(FileOut, Buf, length(MasikFile) + 1);


// Masodik file meretenek eltarolasa

FileMeret:=FileSize(File2);

for c:=1 to 16 do

begin

Buf[c]:=char(FileMeret mod 256);

FileMeret:=FileMeret div 256;

end;


BlockWrite(FileOut, Buf, 16);


// Masodik file eltarolasa

repeat

BlockRead(File2, Buf, SizeOf(Buf), OlvasottBytetokSzama);

BlockWrite(FileOut, Buf, OlvasottBytetokSzama);


until OlvasottBytetokSzama < SizeOf(Buf);


CloseFile(FileOut);

CloseFile(File1);

CloseFile(File2);

end;

2009. szept. 30. 19:10
Hasznos számodra ez a válasz?
 2/3 anonim válasza:

procedure Szetszedes(Input: string; outdir:string);

var

FileInp:file;

Fileout:file;

FileName:string;

FileMeret:integer;

Buf:array[1..4096] of char;

c:integer;

Szorzo:int64;

OlvasottByteokSzama:integer;

begin

// Osszefuzott file megnyitasa

AssignFile(FileInp, Input);

reset(FileInp, 1);


while not Eof(FileInp) do

begin

// File nev kiolvasasa

FileName:='';

repeat

BlockRead(FileInp, Buf, 1);

if Buf[1] <> #0 then

FileName:=FileName + Buf[1];

until Buf[1] = #0;


// Meret kiolvasasa

FileMeret:=0;

Szorzo:=1;

for c:=1 to 16 do

begin

BlockRead(FileInp, Buf, 1);

FileMeret:=FileMeret + (ord(Buf[1]) * Szorzo);

Szorzo:=Szorzo * 256;

end;


// Kibontando file letrehozasa

AssignFile(Fileout, outdir + FileName);

Rewrite(Fileout, 1);


// Kibontando file kibontasa

repeat

BlockRead(FileInp, Buf, min(FileMeret, SizeOf(Buf)), OlvasottByteokSzama);

BlockWrite(FileOut, Buf, OlvasottByteokSzama);


if FileMeret > SizeOf(Buf) then

FileMeret:=FileMeret - SizeOf(Buf);


until OlvasottByteokSzama < SizeOf(Buf);


// Kibontando file zarasa

CloseFile(Fileout);

end;


// osszegzett file zarasa

CloseFile(FileInp);


end;

2009. szept. 30. 19:12
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
THX
2009. okt. 3. 21:28

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!