Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datei an bestimtmer Position öffnen (https://www.delphipraxis.net/69130-datei-bestimtmer-position-oeffnen.html)

Avax2k 10. Mai 2006 15:54


Datei an bestimtmer Position öffnen
 
ist es möglich eine Datei erst an einer bestimmten Stelle zu öffnen sprich, wenn ich eine Textdate mit dem Inhalt ABCDEFG habe, diese mit einem externen Programm per ShellExecute öffne und diese dann aber nur den Inhalt DEFG anzeigt und somit an einer bestimmten Stelle geöffnet wird?

Klaus01 10. Mai 2006 16:01

Re: Datei an bestimtmer Position öffnen
 
unter linux/unix gibt es da tools wie grep,egrep und awk
die könnten eine gewissen Teil einer Datei auslesen.

An einer bestimmten Stelle öffnen, verstehe ich nicht.
Der Lesezeiger ist nach dem Dateiöffnen am Anfang der Datei.

Wenn Du so ein Tool programmieren willst, kannst Du die ganze Datei
einlesen, oder die Daten auch zeilenweise und nur das ausgeben
was Du für sinnvoll hälst.
Bei Textdateien gibt es keine Sprungmarken, wie z.B. in Datensatz orientierten Datein.
Es ist also nicht so ohne weiteres möglich an Postition x zu springen.

Hoffe, habe Dich nicht ganz falsch verstanden.

Grüße
Klaus

Avax2k 10. Mai 2006 16:07

Re: Datei an bestimtmer Position öffnen
 
nein hast mich nicht falsch verstanden...

wie würde es aussehen, wenn man den Header der Datei um Bytes erweitern würde, die es dann nicht möglich machen würden die Datei zu öffnen da das Programm sagen würde es liegt ein ungültiges Format vor aber mit dem eigenen Programm sollen die zusätzlichen bytes im Header gar nicht gelesen und somit die datei problemlos geöffnet werden können..

ist das machbar und wenn ja wie könnte man das realisieren?

marabu 10. Mai 2006 16:10

Re: Datei an bestimtmer Position öffnen
 
Hi.

Um es einmal mit den Worten eines berüchtigten Wahl-Berliners auszudrücken: alles geht!

Der Aufwand hängt stark davon ab, über welche I/O Funktionen bzw Komponenten auf die Datei zugegriffen wird. Am einfachsten ist es mit TFileStream - einfach die Zahl der zu überlesenden Bytes der Eigenschaft Position zuweisen.

Grüße vom marabu

Avax2k 10. Mai 2006 16:19

Re: Datei an bestimtmer Position öffnen
 
würde es gerne mit einer audio-Datei machen, die dann mit der TMediaPlayer Komponente abgespeilt werden sollte.

marabu 10. Mai 2006 16:51

Re: Datei an bestimtmer Position öffnen
 
Hoppla - deine Frage erweckte bei mir den Eindruck es handele sich um eine Textdatei. Audio-Dateien haben ein internes Format, eine Struktur. Hinzu kommt, dass die Komponente TMediaPlayer (nach flüchtiger Sichtkontrolle) kein Stream-Interface zur Verfügung stellt. Ein wenig eleganter aber funktionierender Ansatz wäre den custom header durch eine vorgelagerte Routine zu entfernen und die standard-konforme Datei temporär zu speichern um sie vom MediaPlayer öffnen zu lassen. Was hast du vor?

marabu

Avax2k 10. Mai 2006 19:04

Re: Datei an bestimtmer Position öffnen
 
danke marabu für deine Unterstützung

ich möchte auf irgend eine Weise das Kopieren und verwenden meiner Dateien ohne mein Programm verhindern.. meine anderen Threads (wie der gestrige zum Verhindern der Kopierfunktion in Windows) versuchen herauszufinden, ob es irgend einen Weg gibt, den ich nehmen könnte um mein Ziel zu erreichen und deshalb diskutiere ich verschiedene Ansätze.
Wenn ich z.B. eine Mp3-Datei habe und diese eben mit einer anderen Datei per Join verbinde bekomme ich eine Datei die keiner öffnen kann (nunja es sei denn er weiss was er splitten muss) und somit ist diese datei auch unnütz zum Kopieren da er sie sowieso nicht benutzten kann, wenn er meine Hauptanwendung nicht hat... wenn ich jetzt die Datei OHNE zwischenspeicherungeinfach an einer bestimmten Stelle öffnen könnte wäre mein problem gelöst..wie gesagt wenn ich zwischenspeichere ist alles für die Katz weil man ja das entsplittete ergebnis problemlos kopieren kann :(


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 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