![]() |
fputc für Delphi?
Hi,
Die Procedure fputc schreibt ein Char in eine Datei die man (in Delphi) mit AssignFile geöffnet hat. Was benutzt man da in Delphi? Ich benutze gerade das hier:
Delphi-Quellcode:
geht das? Weil mein Programm funktioniert nicht.. die Frage ist halt ob es daran liegt...
BlockWrite(file,Buf,1);
Außerdem hab ich da ein kleines Problem mit for-Schleifen:
Code:
for(i = i + j; i < 0x1000 - sizeof(bla) + 1; i++)
fputc(bla,bla);
Code:
Keine Ahnung wie ich sowas übersetzen soll o.O
for( j = 0; i < 0x1000 && j < sizeof(bla) - 1; i++, j++)
Ich meine das erste geht zwar theoretisch aber
Delphi-Quellcode:
ist schon seltsam...
for i:= i + j to $1000-SizeOf(Bla)+1 do
... Gruß Neutral General |
Re: fputc für Delphi?
Zitat:
Delphi-Quellcode:
Hoffe dies hilft Dir weiter, ein Blick in die OnlineHilfe mit den verwendeten Begriffen könnte Dir auch weiterhelfen, evtl. mit Beispiel-code, keine Ahnung. Was die übersetzung der For... Schleife angeht, da fehlen mir die Grundkenntnisse in der Quellsprache :-)
VAR
datei : textfile; s : string; [...] AssignFile(datei, 'test.txt'); Rewrite(datei); s := 'g'; Write(datei, s); // Schreibt ein 'g' in die Datei OHNE Zeilenumbruch (sonst writeLN(file, s) ) CloseFile(datei); Grüsse, SCRaT |
Re: fputc für Delphi?
Hi,
Das Problem ist vielleicht das ich keine Textdatei habe sondern ein JPEG öffne und da reinschreiben will. Und da funktioniert Write nicht (wenn file: File). Gruß Neutral General |
Re: fputc für Delphi?
Code:
sollte in etwa so übersetzt werden.
for( j = 0; i < 0x1000 && j < sizeof(bla) - 1; i++, j++)
Delphi-Quellcode:
Wenn der Datei Type = char oder Byte ist,
j:=0;
while (i < $1000) and (j < sizeof(bla)-1) do begin inc(i); inc(j); end; kann dort auch mit Write hineingeschrieben werden.
Delphi-Quellcode:
Grüße
Datei : File of Char;
c : Char; .. write(datei,c) Klaus |
Re: fputc für Delphi?
Hmmmm, davon war ja bislang gar nicht die Rede... :gruebel:
Ok, evtl. könnte es so klappen (bei mir funkioniert es):
Delphi-Quellcode:
Evtl. ist für Dich auch noch datei.position interessant, wenn Du an eine bestimmte Stelle in den Stream schreiben möchtest...
var datei : tfilestream;
s : char; [...] datei := tfilestream.Create('d:\test.txt', fmCreate); // fmCreate evtl. anpassen! -> Hilfe s := 'm'; datei.Write(s, 1); datei.free; SCRaT [edit] mit char funktioniert es auch... [/edit] |
Re: fputc für Delphi?
Hi,
Mh ja das mit dem Stream is auch ne Idee nur im Original wurde halt mit AssignFile etc gearbeitet, deswegen weiß ich jetzt nicht ob das mit Streams funktioniert aber eigentlich: Wieso sollte es nicht gehn? Gruß Neutral General |
Re: fputc für Delphi?
Müsste eigentlich für Deine Zwecke wesentlich besser sein, auch wenn es etwas gewöhnungsbedürftig ist - das gebe ich zu. Evtl. gibt es ja da Tutorials...
Ein häuftiger Fehler ist, dass man nach dem Öffnen eines Streams vergisst, Position := 0 zu setzen, da sich der Pointer nach dem Öffnen am Ender der Datei befindet. Das nur zur Info. Hat schon vielen Kopfzerbrechen bereitet, der Fehler lässt sich nämlich schlecht finden, wenn man nicht dran denkt... :-) Und pass auf! "fmCreate" überschreibt die Datei. Andere Konstanten siehe in der OnlineHilfe. Viel Glück... SCRaT P.S.: Weiterer Vorteil des Streams: Du kannst den Stream z.B. dann gleich in eine TImage-Komponente kopieren und anzeigen. |
Re: fputc für Delphi?
@Scrat: Keine Angst ich kenn mich mit Streams aus ;) um einiges besser sogar als mit AssignFile und dem ganzen Müll :mrgreen:
Ok danke schonmal. Mal gucken was sich machen lässt. Gruß Neutral General |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 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