![]() |
Typ File mit Typ String addieren
Hi Leute,
wiedereinmal benötige ich eure Hilfe. Diesesmal aber ein wenig komplexer. Ich habe jetzt eine .exe Datei in mein Programm geladen und zwar wie folgt:
Delphi-Quellcode:
Jetzt möchte ich an das ende dieser datei einen String anfügen.
opendialog1.Execute;
AssignFile( x,(OpenDialog1.Filename)); Ja ich weiß, das ganz hat keinen Sinn, weil der String nichts bewirkt. Der einzige Grund,w arum ich das machen will ist folgender: Ich möchte die Datei ein wenig vergrößern, damit ich sie auf Rapidshare laden kann, um dann ein wenig Punkte noch zusätzlich fürs herrunter laden bekomme^^. Man könnte zwar auch einfach ne andere Datei mit der eigenlichen in ein .rar Archiv packen,a ber ich möchte es dennoch mal auf meine Weise machen. Es wäre wirklich klasse, wenn ihr mir sagen könntet wie ich das mache. |
Re: Typ File mit Typ String addieren
Willst du objektorientiert programmieren oder alles global halten und nur mit proceduren und funktionen arbeiten?
|
Re: Typ File mit Typ String addieren
Nur Proceduren und funktionen.
Also der String, den ich einfügen will ist Konstant. Also ohne Memo etc. |
Re: Typ File mit Typ String addieren
Mir ging es mehr darum es mehr mehr Sinn macht dir die objektorientierte Variante zu zeigen oder die welche nicht viel mit objektorientiertem zu tun hat.
Denn aktuell bin ich verwirrt - du verwendest TOpenDialog (also eine Klasse) und vermutlich auch Forms (TForm auch eine Klasse) suchst aber danach wie man ohne Objekte in Dateien schreibt (also keine Konsequenz - mal objektorientiert mal nicht) Hast du schon die Suche nach AssignFile bemüht oder die Hilfe? Ich habe eben mal nach AssignFile in der Delphipraxis gesucht und dabei gleich Beispiele gefunden wie man es verwendet. |
Re: Typ File mit Typ String addieren
Achso^^
So sieht es wie folgt aus:
Delphi-Quellcode:
Wie du siehst, ich benutze schon eine VCL Anwendung.
procedure TForm1.SpeedButton1Click(Sender: TObject);
var x: File; begin opendialog1.Execute; AssignFile( x,(OpenDialog1.Filename)); end; Jetzt habe ich mir das so gedacht: Über den OpenDialog lade ich die .exe auf die Variable x. Und nun möchte ich an das Ende einen String y hinzu fügen. Aber der String ist feste vorgegeben. Ums ganz krass zu sagen. Ich hab die .Exe und an das ende möchte ich einen 3 MB String anhänge. Das problem was ich habe ist folgendes: x ist vom Typ File und Der String ja ganz klar vom Typ String. Und dann bekomm ich antürlich folgenden fehler: [DCC Fehler] Unit1.pas(61): E2015 Operator ist auf diesen Operandentyp nicht anwendbar So ist der Code:
Delphi-Quellcode:
x := x+y //x = Typ File y = Typ String
Hoffe das hat was klarheit gebracht |
Re: Typ File mit Typ String addieren
Ich würde die Objektorientierte Variante vorziehen wenn du bereits damit angefangen hast:
Delphi-Quellcode:
var
lStream: TFileStream; begin if OpenDialog1.execute then begin lStream := TFileStream.Create(OpenDialog1.Filename, fmOpenReadWrite); try lStream.Size := lStream.Size + 1024*1024*3; finally lStream.Free; end; end; |
Re: Typ File mit Typ String addieren
Ok hab es jetzt so.
Jetzt sieht das alles so aus:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if OpenDialog1.Execute = true then begin lStream := tFileStream.Create(OpenDialog1.FileName, fmOpenRead); Edit1.Text := OpenDialog1.FileName; try SetLength(Buffer , lStream.Size); lStream.Read(Buffer[1], lStream.Size); finally end; end; end; procedure TForm1.Button2Click(Sender: TObject); begin lStream.Size := lStream.Size + 1024*1024*3; Edit3.Text := IntToStr(lstream.Size); Jetzt habe ich aber noch 2 Sachen. 1. Wofür genau bzw was genau bewirkt
Delphi-Quellcode:
2. Wenn ich das so jetzt starte und mir die Größe ausgeben will bekomme ich nen fehler das der Zugriff verweigert wurde.
SetLength(Buffer , lStream.Size);
lStream.Read(Buffer[1], lStream.Size); Wenn ich aber nur
Delphi-Quellcode:
[/delphi]
Edit3.Text := IntToStr(lstream.Size);
Habe also ohne noch ws zu multiplizieren, dann kann ich mir die Größe ausgeben lassen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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