AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fputc für Delphi?

Ein Thema von Neutral General · begonnen am 2. Apr 2007 · letzter Beitrag vom 2. Apr 2007
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

fputc für Delphi?

  Alt 2. Apr 2007, 15:07
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:

BlockWrite(file,Buf,1); geht das? Weil mein Programm funktioniert nicht.. die Frage ist halt ob es daran liegt...

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:
for( j = 0; i < 0x1000 && j < sizeof(bla) - 1; i++, j++)
Keine Ahnung wie ich sowas übersetzen soll o.O

Ich meine das erste geht zwar theoretisch aber

Delphi-Quellcode:
for i:= i + j to $1000-SizeOf(Bla)+1 do
 ...
ist schon seltsam...

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:13
Zitat von Neutral General:
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:

BlockWrite(file,Buf,1); geht das? Weil mein Programm funktioniert nicht.. die Frage ist halt ob es daran liegt...
Probier doch mal folgendes. Die Datei muss aber mit Schreibzugriff geöffnet werden (z.B. Rewrite(file) ).

Delphi-Quellcode:
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);
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

Grüsse,

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:19
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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:23
Code:
for( j = 0; i < 0x1000 && j < sizeof(bla) - 1; i++, j++)
sollte in etwa so übersetzt werden.

Delphi-Quellcode:
j:=0;

while (i < $1000) and (j < sizeof(bla)-1) do
  begin
    inc(i);
    inc(j);
  end;
Wenn der Datei Type = char oder Byte ist,
kann dort auch mit Write hineingeschrieben werden.
Delphi-Quellcode:
Datei : File of Char;
c : Char;
  ..


  write(datei,c)
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:28
Hmmmm, davon war ja bislang gar nicht die Rede...

Ok, evtl. könnte es so klappen (bei mir funkioniert es):

Delphi-Quellcode:
var datei : tfilestream;
    s : char;
[...]
  datei := tfilestream.Create('d:\test.txt', fmCreate); // fmCreate evtl. anpassen! -> Hilfe
  s := 'm';
  datei.Write(s, 1);
  datei.free;
Evtl. ist für Dich auch noch datei.position interessant, wenn Du an eine bestimmte Stelle in den Stream schreiben möchtest...

SCRaT

[edit]
mit char funktioniert es auch...
[/edit]
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:32
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
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:35
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.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: fputc für Delphi?

  Alt 2. Apr 2007, 15:39
@Scrat: Keine Angst ich kenn mich mit Streams aus um einiges besser sogar als mit AssignFile und dem ganzen Müll

Ok danke schonmal.
Mal gucken was sich machen lässt.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 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