Datei dazwischen schieben

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Madde.

    Datei dazwischen schieben

    Hallo Zusammen,

    ich würde gern einen Prozess erstellen, der es mir ermöglicht, schnell das gewünschte Ergebnis zu erhalten.
    Vorab sei noch einmal erwähnt, dass ich ein blutiger Anfänger bin und bei etwaigen Codes gerne eine kurze Erklärung dazu hätte, um zu versuchen, es zu verstehen.

    Zum Thema.
    Ich habe einen Ordner mit einigen Dateien. Für die Weiterverarbeitung dieser Dateien ist es nötig zwischen jede dieser Dateien eine, nennen wir sie mal "leere_seite.tif", dazwischen zu schieben. Da es immer diese Datei sein soll, hätte ich das Problem, dass sie immer überschrieben werden würde. Daher mein Denkansatz. Ist es möglich während dieses Prozesses die vorhandenen Dateien von oben nach unten mit einer laufenden Nummer umzubenennen ( 00001_vorhandene_datei_1.tif ) und nach jeder datei dann die leere_seite.tif mit der folgenden laufenden Nummer sozusagen immer dazwischenzuschießen.

    00001_vorhandene_datei_1.tif
    00002_leere_seite.tif
    00003_vorhandene_seite_2.tif
    00004_leere_seite.tif
    00005_vorhandene_seite_3.tif

    usw. bis der Ordner durch ist.

    Ich hoffe, meine Ausführungen sind einigermaßen verständlich.


    MfG Madde
    Kannst Du mal erklären, was Du eigentlich erreichen willst?
    Mir ist nicht klar was diese "Leer"-Dateien bewirken sollen. Dem Ganzen muss doch ein Problem aus dem echten Leben zu Grunde liegen. Das solltest mal einfach ohne jede technischen Erklärungsversuche sagen, was Du eigentlich (das echte Ziel Deines Bemühens) erreichen willst.

    Dksksm schrieb:

    Kannst Du mal erklären, was Du eigentlich erreichen willst?


    Selbstverständlich kann ich Dir das sagen :)
    Die Dateien sollen verfilmt werden und ich benötige zwischen jedem Filmbild ein Leerbild.

    exc-jdbi schrieb:

    Mit FileInfo hast du alle Möglichkeiten die du hier möchtest.

    Nimm die Namen oder die Dateien direkt in eine Array.


    Kannst Du mir dies an Hand eines Codebeispiels veranschaulichen?

    MfG Madde
    Ja können schon, nur ich finde, das kriegst du genau so gut hin.

    Google ist da wahrscheinlich dein Freund. Hier ein paar Links

    FileInfo.Create
    docs.microsoft.com/en-us/dotne…e?view=netframework-4.7.2

    Rename Files
    stackoverflow.com/questions/25…eto-if-file-exists-rename

    Build Array
    stackoverflow.com/questions/17…-in-a-folder-with-getfile

    etc.

    Freundliche Grüsse

    exc-jdbi

    Madde schrieb:


    Die Dateien sollen verfilmt werden und ich benötige zwischen jedem Filmbild ein Leerbild.


    Dann bau Dir das Leerbild in dem Prozess der Verarbeitung ein, aber hier ein Leerbild zu generieren halte ich für falsch.
    Alles andere hat Dir @exc-jdbi nun schon genannt.

    Trotzdem verstehe ich den Sinn nicht, denn in der Verarbeitung kannst Du Dir den Zwischenschritt des Umbenenns auch sparen.
    Dann bau Dir das Leerbild in dem Prozess der Verarbeitung ein, aber hier ein Leerbild zu generieren halte ich für falsch.

    ??
    Sei mir nicht böse aber wenn dies möglich wäre, hätte ich nicht nach einer alternativen Lösung hier gefragt.

    exc-jdbi schrieb:

    Ja
    können schon, nur ich finde, das kriegst du genau so gut hin.


    Danke für die Links. Schau ich mir an.

    MfG Madde
    @Madde Das liegt daran, dass Du nicht wirklich erklärst was Du machen willst und wie. Was Du selbst Programmieren willst und was Du vielleicht fertiges nutzt.
    Meine Eingangsfrage war sicher nicht um Dich zu Ärgern, aber wenn ich nicht weiß was Du wirklich benötigst, dann kann ich auch nicht wirklich helfen.

    Rein technisch sind Deine Fragen ja alle Beantwortet worden von @exc-jdbi
    Ich dachte es wären alle Infos nun dabei gewesen. Ich habe viele Tif-Dateien, welche auf einen Film sollen. Aus technischen Gründen benötige ich zwischen diesen ganzen Tif-Dateien eine leere Tif-Datei, damit die Tif-Dateien auf dem Film durch eine leere Tif-Datei getrennt werden.

    Und nun benötige ich halt eine Möglichkeit, dieses Einschieben der leeren Tif-Datei in die vorhandene Ordnerstruktur (meineTif-Dateien) zu automatisieren.

    MfG Madde

    Vollzitat entfernt. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Nein es fehlen reichlich Infos.
    1. Du programmierst also nicht den Teil, der den Film generiert, nehm ich jetzt mal an.
    2. Woher kommt die leere TIF denn? Oder musst Du sie generieren?

    3a. Falls Du sie woher kopierst, hast Du eine Quelle?
    3b. Falls Du sie generierst, wie sieht die TIF aus (Breite, Höhe, Bildfarbe)?

    Fragen über Fragen...

    Welchen Code hast Du bis jetzt geschrieben?
    Mit den Infos von @exc-jdbi müsstest Du schon weiter gekommen sein.

    Madde schrieb:

    Die Dateien sollen verfilmt werden und ich benötige zwischen jedem Filmbild ein Leerbild.
    Was ist denn da das Output-Format?
    Wie passiert das Verfilmen?
    Wenn die Bilder iwie eingelesen werden, kannst Du da gleich eine programm-interne leere Seite einschieben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Dksksm
    Es geht einzig und allein um Datenhandling. Der Inhalt der Dateien ist vollkommen egal. Was interessiert es, wie die Datei aussieht?
    3b verstehe ich noch weniger. Was spielen die Bildinformationen beim Benennen einer Datei für eine Rolle?

    Ich weiß, dass ich hier um Hilfe gebeten habe und nicht in der Position bin, zu fordern oder dergleichen aber ich habe einleitend darauf aufmerksam gemacht, dass ich ein blutiger Anfänger bin. Dementsprechend bat ich um Codebeispiele mit paar Erklärungen.
    Wenn Dir dies zu viel ist, dann lass es einfach! Es gibt User, die einfach gerne helfen und NEIN, es ging hier nicht darum, fertigen Code zu bekommen.

    MfG Madde

    Madde schrieb:

    Dementsprechend bat ich um Codebeispiele mit paar Erklärungen.
    Um Dir optimal zu helfen, müssen wir verstehen, was Dein Plan ist.
    Und wie es aussieht, kann Deine Lösung wesentlich eleganter werden.
    Deine permanente und unsinnige Forderung nach Zwischen-Dateien zeugt da eher von Beratungsresistenz denn von Lernbereitschaft.
    In Post #11 stehen noch ein paar offene Fragen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was ist denn da das Output-Format?
    Wie passiert das Verfilmen?
    Wenn die Bilder iwie eingelesen werden, kannst Du da gleich eine programm-interne leere Seite einschieben.


    Es wird der gesamte Ordner der Dateien weiterverarbeitet. Daher benötige ich eben eine fertige Struktur der Daten.
    Das Verfilmungsgerät schaut auf "seine" Warteschlange, holt entsprechend die Daten aus Selbiger und verarbeitet sie.
    In diesen Vorgang kann ich leider nicht eingreifen. Ich kann nur eine fertige Struktur in diese besagte Warteschlange schieben.
    Da ich diese Struktur nur ohne der besagten leeren seiten habe, wäre es derzeit so, dass ich jede Datei einzeln gefolgt von der leerseite in die Warteschlange schieben müsste.

    MfG Madde

    Madde schrieb:


    Wenn Dir dies zu viel ist, dann lass es einfach! Es gibt User, die einfach gerne helfen und NEIN, es ging hier nicht darum, fertigen Code zu bekommen.


    Blödsinn, in der Zeit habe ich sogar fertigen Code geschrieben. Tja weißt Du, wenn Du nicht gewillt bist ein paar einfache Fragen zu beantworten, dann lass ich es auch.
    Ich möchte Dir nicht einfach nur "Leerdateien" unterjubeln, die dann dein "Film-Erzeugungsprogramm" möglichweise gar nicht verkraftet.
    Jo ich hab mir jetzt auch gleich ein Beispiel geschrieben, und funkst wahrscheinlich genau so wie du das gerne hättest.

    Wenn ich dir ein Tip geben darf @Madde

    Versuch zuerst eine Array zu erschaffen, in dem alle Dateien drin sind.
    New DirectoryInfo(dirname).GetFiles

    Dann gehst du ein eine For-Schleife, damit du auch die gerade gefüllte Array abfragen kannst

    Dann mach dir eine eigene Funktion nur für das Renamen der Dateien
    Dafür gibt en in der FileInfo das CopyTo und das Delete für die Originaldatei

    Dann mach dir eine weitere eigene Funktion für die "Zwischedatei", also deine EmptyFile mit
    Using fs = New FileStream(newfilename, FileMode.CreateNew)

    Und wir helfen gerne, kannst deinen Zwischenstand oder wenn ein Problem besteht jeder Zeit zeigen. Es führen bekanntlich viele Wege nach Rom.

    Freundliche Grüsse

    exc-jdbi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „exc-jdbi“ ()

    Madde schrieb:

    Das Verfilmungsgerät schaut auf "seine" Warteschlange, holt entsprechend die Daten aus Selbiger und verarbeitet sie.
    Dann muss es eben so gehen.
    Erzeuge in Deinem Programm eine Leerseite,
    Lade alle Dateien in ein FileInfo-Array.
    Arbeite die in einer For-Schleife bis zum vorletzten Index durch (nicht For Each, da sonst eine zusätzliche leere Datei ans Ende kommt.
    Speichere zu jeder Datei mit einem entsprechend veränderten Dateinamen Deine leere Datei ab.

    VB.NET-Quellcode

    1. For i = 0 To myArray.Length - 2
    2. Dim name = System.IO.Path.ChangeExtension(myArray.FileName, ".empty.tif")
    3. ' hier Deine leere Seite unter dem eben erzeugten Namen (ggf. mit einer anderen Extension) abspeichern.
    4. Next
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    So, ich komme zu keinem Ergebnis. Ich muss mir eingestehen, dass deutlich mehr dazu gehört, als diverse Schnipsel zu verwenden und sich etwas zusammenzubauen. Mir fehlt es da insgesamt an Grundwissen aber das wusste ich ja. Programmierung ist aber eben nicht mein Arbeitsumfeld in welchem ich unterwegs bin. Ich wollte nur versuchen, mir diverse Abläufe zu erleichtern.

    @Dksksm - nichts für ungut, war nicht persönlich gemeint, nachbetrachtet hab ich da etwas überreagiert

    Danke an Alle die sich überhaupt die Zeit genommen haben.

    Schönes WE wünsch ich!

    MfG Madde
    also ich find die Anforderung leidlich verständlich beschrieben:
    In einem Ordner sollen alle Dateien umbenannt werden - 4-stellige, ungerade, laufende Nummern sollen den Dateinamen vorangestellt sein.
    Weiters soll jeder Datei eine Dummy-Datei beigeordnet werden, also dieselbe Datei soll vielfach kopiert werden, und den Kopien sollen im Namen die graden Zahlen als laufende Nummern vorangestellt sein.
    Dass ungefähr so ein Ergebnis bei rauskommt:

    Madde schrieb:

    00001_vorhandene_datei_1.tif
    00002_leere_seite.tif
    00003_vorhandene_seite_2.tif
    00004_leere_seite.tif
    00005_vorhandene_seite_3.tif
    Der Sinn des ganzen ist noch etwas verdunkelt, iwie sollen die Dateien zu einem Film zusammengebastelt werden, und dazu sind wohl die leeren Seiten iwie notwendig.

    Prinzipiell ist das keine schwierige Aufgabe, aber ist halt viel zu tun:
    1. Man braucht iwie eine Eingabe, welcher Ordner überhaupt durchsucht werden soll
    2. Man braucht eine Eingabe, welche Datei als Dummy fungieren soll.
    3. Und dann halt einen Button, mit dem die Umbenennerei gestartet wird.

    Was man auch noch sich ausdenken kann ist:
    Was passiert, wenn ein Ordner angegeben wird, der bereits verarbeitet wurde?
    Oder kann ganz sicher ausgeschlossen werden, dass sich ungeeignete Dateien im Ordner befinden?
    Besteht die Möglichkeit (Befürchtung), dass, wenns fertig ist, dass sich dann zeigt, dass noch weitere Features benötigt werden?

    Also ich kann anbieten, dir sone Umbenennerei zu programmieren, aber ich bin zu faul, ein Form zu basteln, was die Punkte 1-3 abdeckt (und wenn ichs mache, fürchte ich immer noch, dasses nicht das ist, was du benötigst).

    Aber wie gesagt: Problematisch ist, dass du selbst so wenig proggen kannst. Da kann man dir die schönsten Lösungen hinbasteln, aber die Erfahrung zeigt leider, dass inne Praxis dann immer iwas auftritt, was dann doch bischen anders soll.
    Und wenn du das dann nicht selbst anpassen kannst, dann wird das halt leicht zu einem Fass ohne Boden.

    Aber wie gesagt: Wenn du den Rahmen zimmerst (Punkte 1-3), und hier als DateiAnhang einstellst, dann kann ich die Umbenennerei dazu-frickeln.
    Zum Einstellen siehe

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()