AGB  ·  Datenschutz  ·  Impressum  







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

Daten anhängen

Ein Thema von Ringer · begonnen am 4. Sep 2003 · letzter Beitrag vom 4. Sep 2003
Antwort Antwort
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#1

Daten anhängen

  Alt 4. Sep 2003, 14:39
Hallo Zusammen,

folgendes Problem: Ich habe mehrere Textdateien welche ich auslesen will und deren Inhalt in einer Textdatei zusammenfassen will. Die Dateien haben folgende Struktur:

Dateiname: file1.txt
file2.txt...

Dateiinhalt: daten1,daten2,... (aber nur eine Zeile!)

Die "große" Enddatei soll dann den Inhalt der einzelnen Datei zeilenweise! beinhalten.

Ich habe schon mit eof und append rumprobiert aber irgendwie stelle ich mich als Anfänger (oder überhaupt ) falsch an!

Daher wäre ich über Tips oder sogar etwas Code dankbar!

mfg

Ringer
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: Daten anhängen

  Alt 4. Sep 2003, 14:49
Wie kommst du an die ganzen Dateien die einzulesen sind?
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Daten anhängen

  Alt 4. Sep 2003, 14:52
Die Dateien werden von verschiedenen Anwendern in einen zentralen Ordner zur Informationsübergabe bereitgestellt. Also ist so eine Art Datenbündelung, aber es müssen Textdateien sein!
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#4

Re: Daten anhängen

  Alt 4. Sep 2003, 14:55
Das Einlesen aller Dateinamen dürfte ja dank FindFirst, FindNext,... kein Problem darstellen.
Das nächste Zauberwort heißt dann Schleife.
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Daten anhängen

  Alt 4. Sep 2003, 15:03
Naja dadurch das alle Dateien eh in einen Verzeichnis sind ist das nicht das Problem.

Ich weiss auch die Schleife ungefähr so aussehen muss:

Delphi-Quellcode:
for i=1 to 50 (zahl ist egal) do
  begin
    if fileExists('file'+i+'.txt') then...
ich hoffe das ist nicht totaler mist . Aber wie ich jetzt die eine Zeile aus der Datei auslese (das geht noch) und die dann in einer Datei zusammenfasse...
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#6

Re: Daten anhängen

  Alt 4. Sep 2003, 15:22
Natürlich ungetestet, sollte aber die Vorgehensweise klar machen.
Delphi-Quellcode:
var ts_main, ts: TStringList;
begin
  ts_main := TStringList.Create;
  try
    ts := TStringList.Create;
    try
      for i := 1 to 50 do //hier deine dateien laden, woher auch immer
        ts.LoadFromFile(dateixy);
        if ts.Count > 0 then begin
          ts_main.Add(ts.Strings[0]);
        end;
    finally
      ts.Free;
    end;
    ts_main.SaveToFile(Haupdatei);
  finally
    ts_main.Free;
  end;
  Mit Zitat antworten Zitat
Ringer

Registriert seit: 2. Sep 2003
32 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Daten anhängen

  Alt 4. Sep 2003, 15:34
Sorry verstehe ich aber nicht! Vielleicht habe ich mich auch schlecht ausgedrückt Aber es kann auch sein das eine Datei nicht da ist. Außerdem will ich das in der Hauptdatei die Einträge Zeile für Zeile vorliegen. Vielleicht könntest du mir als blutiger Anfänger noch einen Kommentar dazu schreiben

mfg

Ringer
  Mit Zitat antworten Zitat
Dannyboy

Registriert seit: 4. Aug 2003
Ort: Delphi-Heaven
418 Beiträge
 
Delphi 7 Personal
 
#8

Re: Daten anhängen

  Alt 4. Sep 2003, 15:36
Ich code Dir hier mal eben das Kopieren des Inhaltes einer Datei in
eine andere runter und danach sage ich noch was zum Anhängen.

Dieser Stil ist ein alter Pascal-Stil, den ich noch von damals aus dem
Abi kann. Es gibt viele, andere Mittel dieses Problem zu lösen,
Ich bin gerade auf der Arbeit und habe deshalb kein Delphi zur Hand.
Ich konstruiere das mal eben "per Stift"! Ich werde Dir alles
ausreichend dokumentieren, damit Du es nachvollziehen kannst.


Delphi-Quellcode:
// Erst mal Pfad von Quelle und Zieldatei definieren:

Const Quelle = 'C:\Quelle.dat';
Const Ziel = 'C:\windows\Desktop\Ziel.dat';

// Datenstruktur Deiner Datei

Type TRecord = Record
               ... // was auch immer, pack's einfach rein.
               end;

Var QuellDat, ZielDat : File of TRecord; // Dateizuweisung des Datentyps!

Var Hilf : TRecord; // Muss äquivalent mit "File of" sein !!!

Begin
  AssignFile(QuellDat, Quelle); // QuellDat-Variable des ext. Namen zuweisen
  Reset(QuellDat); // vorhandene Datei öffnen
  If IOResult = 0 then // Wenn kein Fehler ...
  begin
    AssignFile(ZielDat, Ziel); // ZielDat-Variable des ext. Namen zuweisen
    Reset(ZielDat); // vorhandene Datei öffnen
    If IOResult <> 0 then // Wenn Datei nicht vorhanden ...
      Rewrite(ZielDat); // ... Erstelle neue Datei
    While not Eof(QuellDat) Do // Solange Datei nicht am Ende
    Begin
      Read(QuellDat, Hilf); // Lese Record von QuellDat
      Write(ZielDat, Hilf); // Schreibe Record in ZielDat
    end
  end
  else { Fehler }; // Fehlerbehandlung
  CloseFile(QuellDat); // Schließe QuellDat
  CloseFile(ZielDat); // Mach zu, das Ding
end;
So, zum Anhängen von Informationen an eine Datei machst Du Folgendes:

Delphi-Quellcode:
Type TDatei = File of String; // muss nicht String sein, bloß ein Beispiel

Function PrepareForAppend(Var Datei : TDatei; FileName : String) : Boolean;
Begin
  AssignFile(Datei, FileName); // Wieder mal einer Dateiveriable den ext. Namen zuweisen
  Reset(Datei) // Vorhandene Datei öffnen.
  If IOResult <> 0 then
    Rewrite(Datei) // Bei nicht vorhanden sein, neu erstellen
  {Und jetzt kommt der Knackpunkt!}
  Seek(Datei, FileSize(Datei)); // Wir setzen den Cursor auf das Dateiende und damit können wir weitere Infos anhängen (konkatinieren)
  Result:= (IOResult = 0) AND FileExists(FileName); // True, wenn kein Fehler + Datei vorhanden !
end;
Also Leute, macht's gut. Ich fahre nun heim.
DANNYBOY
  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 17:42 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