Aktuelle Zeit: 17.11.2019 10:22

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 16:14 
Offline

Registriert: 31.12.2009 11:58
Hallo, guten tag.

Ich habe in einen Ordner Textdateien, manchmal 3 oder auch 5.
Nun möchte ich die Textdateien hintereinander einlesen , damit es eine Textdatei wird.

Wie geht das bitte?
Alle Textdateien im Ordner finden mit der Endung .txt und dann zusammenführen bitte.

Danke.
Gruss


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 16:37 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
In meinem Beispiel werden alle drei Textdateien (es können auch binäre Dateien sein) eingelesen und den Inhalt aller drei Dateien wird in eine zusammengefasste Datei geschrieben:
Code:
EnableExplicit

Define FileLength
Define *FileMemory

If CreateFile(0, "D:\textfull.txt")
  If ReadFile(1, "D:\text1.txt")
    FileLength = Lof(1)
    *FileMemory = AllocateMemory(FileLength)
    ReadData(1, *FileMemory, FileLength)
    WriteData(0, *FileMemory, FileLength)
    CloseFile(1)
    FreeMemory(*FileMemory)
  EndIf
  If ReadFile(1, "D:\text2.txt")
    FileLength = Lof(1)
    *FileMemory = AllocateMemory(FileLength)
    ReadData(1, *FileMemory, FileLength)
    WriteData(0, *FileMemory, FileLength)
    CloseFile(1)
    FreeMemory(*FileMemory)
  EndIf
  If ReadFile(1, "D:\text3.txt")
    FileLength = Lof(1)
    *FileMemory = AllocateMemory(FileLength)
    ReadData(1, *FileMemory, FileLength)
    WriteData(0, *FileMemory, FileLength)
    CloseFile(1)
    FreeMemory(*FileMemory)
  EndIf
 
  CloseFile(0)
EndIf


\\Edit:
FreeMemory wurde hinzugefügt.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 16:52 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
RSBasic war schneller 8)

hat aber ein Speicherleck... FreeMemory vergessen.

Hatte etwas Langeweile.
Code:
;-TOP

; -------------------------------------------------------------------

Procedure OpenTextFiles(List Files.s())
  Protected file.s
 
  ClearList(Files())
  file = OpenFileRequester("Textfiles", "", "TXT|*.txt", 0, #PB_Requester_MultiSelection)
  While Bool(file)
    AddElement(Files())
    Files() = file
    file = NextSelectedFileName()
  Wend
  ProcedureReturn ListSize(Files())
EndProcedure

; -------------------------------------------------------------------

Procedure PackTextFiles(List Files.s(), SaveFile.s)
  Protected desc.i, source.i, size, *buffer
  desc = CreateFile(#PB_Any, SaveFile)
  If desc
    ForEach Files()
      source = ReadFile(#PB_Any, Files())
      If source
        size = Lof(source)
        If size
          *buffer = AllocateMemory(size)
          ReadData(source, *buffer, size)
          WriteData(desc, *buffer, size)
          FreeMemory(*buffer)
        EndIf
        CloseFile(source)
      Else
        Debug "Error: ReadFile " + Files()
      EndIf
    Next
    CloseFile(desc)
  Else
    Debug "Error: CreateFile " + SaveFile
  EndIf
EndProcedure

; -------------------------------------------------------------------

Define NewList files.s()
Define save.s

If OpenTextFiles(files())
  save = SaveFileRequester("Save to", "", "", 0)
  If Bool(save)
    Debug save
    PackTextFiles(files(), save)
  EndIf
EndIf


_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 16:53 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
@mk-soft
Dann war ich wohl zu schnell. Sorry, FreeMemory() darf natürlich nicht fehlen. :oops: Habs hinzugefügt.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 17:06 
Offline

Registriert: 31.12.2009 11:58
Danke für die schnelle Hilfe.

Wenn ich einen 2. Datei anklicke und speichere , ist die 1. Datei verschwunden in der sammel.txt
Wie kann man es bitte machen, das die Dateien hier im Progamm immer die Datei dranhängen und nicht die 1. löschen?

Danke.
Gruss


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 17:08 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Die Datei, die Du erweitern möchtest, musst du natürlich immer als erstes öffnen.

_________________
PureBasic 5.71 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 17:09 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
Was heißt "anklicken"?
Wenn du eine bereits vorhandene Datei mit PB öffnest und du möchtest einen weiteren Text hinzufügen, ohne den vorherigen Inhalt zu überschreiben, kannst du mit FileSeek(Lof(#DeineDatei)) arbeiten.

_________________
BildBildBildBild BildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 17:37 
Offline
Benutzeravatar

Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten
Hallo funkheld,

ich habe mich um die Listen und Proceduren gedrückt:
Code:
; Mehrere Dateien zu einer Datei zusammenfassen.
Dateiname.s=OpenFileRequester("Bitte alle Dateien zum Laden auswählen:","",
                              "Text (*.txt)|*.txt|Alle Dateien (*.*)|*.*",0,#PB_Requester_MultiSelection)
ZielDateiname.s=SaveFileRequester("Bitte Datei zum Speichern angeben:","","Text (*.txt)|*.txt|Alle Dateien (*.*)|*.*",0)
If 0=FindString(ZielDateiname,".") : ZielDateiname+".TXT" : EndIf
If -1<>FileSize(ZielDateiname) : MessageRequester("FATAL",ZielDateiname+" ist bereits vorhanden.") : End : EndIf
SpeicherDatei=CreateFile(#PB_Any,ZielDateiname)
If 0=SpeicherDatei : MessageRequester("FATAL",ZielDateiname+" konnte nicht erstellt werden.") : End : EndIf
While Dateiname<>""
  LeseDatei=ReadFile(#PB_Any,Dateiname)
  If 0=LeseDatei : MessageRequester("FATAL",Dateiname+" konnte nicht gelesen werden.") : End :EndIf
  Laenge=Lof(LeseDatei)
  *p=AllocateMemory(Laenge)
  If Laenge<>ReadData(LeseDatei,*p,Laenge)
    MessageRequester("INFO",Dateiname+" konnte nicht vollständig gelesen werden.")
  EndIf
  CloseFile(LeseDatei)
  If Laenge<>WriteData(SpeicherDatei,*p,Laenge)
    MessageRequester("FATAL",Dateiname+" konnte nicht vollständig geschrieben werden.")
    End
  EndIf   
  FreeMemory(*p)
  Dateiname = NextSelectedFileName()
Wend
CloseFile(SpeicherDatei)


Das Progrämmchen kann man bei Bedarf noch mit einem DeleteFile(Dateiname) ergänzen, nach WirteData.
Gruß

Edit if -1<>FileSize(ZielDateiname) ...

_________________
PB Spickzettel

Erkenntnisapparat einschalten entscheidet über das einzig bekannte Leben im sichtbaren Universum.
Bitte Frage fragen.
Jürgen Kulow Wersten :D_üsseldorf NRW D Europa Erde Sonnensystem Lokale_Flocke Lokale_Blase Orion-Arm
Milchstraße Lokale_Gruppe Virgo-Superhaufen Laniakea Sichtbares_Universum


Zuletzt geändert von juergenkulow am 13.10.2018 17:57, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 17:48 
Offline

Registriert: 31.12.2009 11:58
Danke für eure Hilfe.

Werde ich jetzt mal zusammenführen.

Gruss


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Textdateien zusammenfassen, wie geht das bitte?
BeitragVerfasst: 13.10.2018 20:09 
Offline
Benutzeravatar

Registriert: 22.12.2016 12:49
Wohnort: :D_üsseldorf-Wersten
Hallo,

es geht auch einfach mit der cmd.exe:
Code:
copy Quelle1.txt+Quelle2.txt+Quelle3.txt Ziel.txt

oder
Code:
copy Quelle*.txt Ziel.txt


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye