AGB  ·  Datenschutz  ·  Impressum  







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

Text Datei teilen

Ein Thema von Crazymodder · begonnen am 22. Feb 2007 · letzter Beitrag vom 23. Feb 2007
 
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Text Datei teilen

  Alt 23. Feb 2007, 16:23
Also gut; die Prozedur kann in das Formular, ein Datenmodul oder "sonstwo" eingebunden werden.
Delphi-Quellcode:
// sQuelldatei ist der vollständige Dateiname
// sZieldatei ist als Format-String gedacht: "E:\Temp\Geteilt_%3.d.Txt",
// dort wird der Zähler der Teildateien eingefügt
// iMaximum ist die maximale Anzahl von Zeichen pro Teildatei
procedure DateiTeilen(const sQuellDatei: string; const sZielDatei: string; const iMaximum: int);
var aQuelle, aZiel: TStringList;
    iSumme, iStart, iZaehler, x0: int;
begin
  // Initialisierungen
  iSumme := 0;
  iStart := 0;
  iZaehler := 0;
  aQuelle := TStringList.Create;
  aZiel := TStringList.Create;
  try
    // Quelle einlesen
    aQuelle.LoadFromFile(sQuellDatei);
    // bearbeite alle Zeilen
    for x0:= 0 to aQuelle.Count - 1 do
    begin
      Inc(iSumme, aQuelle[x0]+2);
      // wenn diese Summe schon zuviel ist, dann neue Teildatei erzeugen
      if iSumme > iMaximum
      then begin
        Inc(iZaehler);
        aZiel.SaveToFile( Format(sZielDatei, [iZaehler]) );
        // Daten zurücksetzen
        aZiel.Clear;
        iSumme := aQuelle[x0] + 2;
      end;
      // aktuelle Zeile kopieren
      aZiel.Add(aQuelle[x0]);
    end;
    // letzte Teildatei speichern
    Inc(iZaehler);
    aZiel.SaveToFile( Format(sZielDatei, [iZaehler]) );
  finally
    aQuelle.Free;
    aZiel.Free;
    if iZaehler > 0
    then ShowMessage( Format("%d Teildateien erzeugt", iZaehler) );
  end;
end;
Bei der Summe habe ich immer 2 Zeichen addiert wegen CR/LF.

Was Dir jetzt noch fehlt, bitte selbst überlegen und unter Delphi-Referenz durchsuchenDelphi heraussuchen. Nicht getestet und ohne Gewähr - siehe Signatur.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
 


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 20:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz