AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

File-Splitter

Ein Thema von hummer · begonnen am 2. Feb 2004 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#1

File-Splitter

  Alt 2. Feb 2004, 12:11
Ich muss für den Informatikunterricht einen Fils-Splitter schreiben und soll den Datentyp FILE benutzen. Wie muss ich denn das Probelm lösen? Das Programm soll Daten in mehrere Teile unterteilen und hinterher auch wieder zusammensetzten können. Die Datengröße soll frei bestimmbar sein. So wäre für ein paar Ansätze sehr Dankbar oder auch für ein paar Syntax Beispiele für den Typ File. Hab damit noch nicht gearbeitet.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: File-Splitter

  Alt 2. Feb 2004, 12:16
Hier findest du eine Klasse von mir dafür: http://www.luckie-online.de/files/demos/ -> TFileSplitter
Und hier ein Programm mit Source: http://www.luckie-online.de/downloads/ -> FileSplitter

Ohne zusammenfügen. geht aber im Prinzip genauso nur umgekehrt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: File-Splitter

  Alt 2. Feb 2004, 13:22
jo danke. werd ich mir mal anschauen.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: File-Splitter

  Alt 2. Feb 2004, 14:01
Das Problem soll möglichst mit Blockread und Blockwrite gelößt werden.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: File-Splitter

  Alt 2. Feb 2004, 17:20
Nun geht im Prinzip genauso, wie bei dem FileSplitter Programm.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: File-Splitter

  Alt 2. Feb 2004, 17:30
Ja, hab jetzt schon geschaft ganze Dateien zu kopieren. Dann wird das andere auch nicht mehr so schwierig sein.

200ster Beitrag
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: File-Splitter

  Alt 2. Feb 2004, 21:34
So jetzt hab ich wieder ein Problem. Ich hab eine Procedur, mit der ich eine Datei in 2 gleich große Dateien splitten will.
Code:
f = Datei, die ich splitten will
f1 = 1. Hälfte
f2 = 2. Hälfte
Das hab ich jetzt mit BlockRead und BlockWrite gekößt. Ich lese zuerst die 1, Hälfte aus und speicher die in eine Datei ab und dann die 2. Hälfte. Jetzt weiß ich aber nicht was ich als weitere Parrameter für BlockRead und BlockWrite angeben muss. Irgendwie brauche ich ja noch einen Buffer. In der Online Hilfe hab ich da nicht richtig durchgeblickt. Hier mal mein Code
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var f,f1,f2 : file; s,s1,s2 : string; g : longint;
begin
  //Datei öffnen
  OpenDialog1.Execute;
  s := OpenDialog1.FileName;
  if FileExists(s) then
  begin
    AssignFile(f,s);
    g := FileSize(f);
    //1.Datei
    AssignFile(f1,s + '01');
    Rewrite(f1);
    BlockRead(f,????,????);
    BlockWrite(f1,????,????);
    //in der Datei vorspringen
    Seek(f,g div 2);
    //2.Datei
    AssignFile(f2,s + '02');
    Rewrite(f2);
    BlockRead(f,????,?????);
    BlockWrite(f1,????,????);
    CloseFile(f);
    CloseFile(f1);
    CloseFile(f2);
  end;
end;
So wäre für Hilfe sehr dankbar.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: File-Splitter

  Alt 3. Feb 2004, 18:26
Habs nochmal in den Vorderrgrund geholt.
Hoffe ihr habt nichts dagegen.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#9

Re: File-Splitter

  Alt 3. Feb 2004, 18:39
In der OH is doch n Beispiel:
Delphi-Quellcode:
var

  FromF, ToF: file;
  NumRead, NumWritten: Integer;
  Buf: array[1..2048] of Char;
begin
  if OpenDialog1.Execute then { Öffnen-Dialogfeld anzeigen }
  begin
    AssignFile(FromF, OpenDialog1.FileName);
    Reset(FromF, 1);   { Datensatzgröße = 1 }
    if SaveDialog1.Execute then { Speichern-Dialogfeld anzeigen }
    begin
      AssignFile(ToF, SaveDialog1.FileName);   { Ausgabedatei öffnen }

      Rewrite(ToF, 1);   { Datensatzgröße = 1 }
      Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
        + ' bytes...');
      repeat
        BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
        BlockWrite(ToF, Buf, NumRead, NumWritten);
      until (NumRead = 0) or (NumWritten <> NumRead);
      CloseFile(FromF);
      CloseFile(ToF);
    end;
  end;
end;
So habs ich es verstanden:
Delphi-Quellcode:
Delphi-Syntax:
procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);
buf:
wenn du einen Block einlesen möchtest, dann must du das eingelsene ja irgendwo reinschreiben !

count:
Anzahl der zu übertragenen "Stücke"
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz