AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi PAnsiChar mit write in Datei schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

PAnsiChar mit write in Datei schreiben

Ein Thema von Viktorii · begonnen am 17. Nov 2008 · letzter Beitrag vom 17. Nov 2008
Antwort Antwort
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#1

PAnsiChar mit write in Datei schreiben

  Alt 17. Nov 2008, 10:39
Hallo,

ich möchte mit Delphi 2009 eine Funktion nachbilden. Hier bekomme ich unter anderem folgende Parameter: buf: PAnsiChar; len: Longint

buf ist ein Buffer (bzw. der Zeiger) in dem Werte stehen und len ist die Anzahl der Werte. Nun möchte ich diese Werte in eine Datei schreiben.

Ich weiss nur nicht wie.

buf direkt an write übergeben kann ja eigentlich nicht funktionieren, da dann ja nicht klar ist wie viel geschrieben werden muss. Habe verschiedene Sachen erfolglos versucht. Unter anderem zB Typecasts:

Delphi-Quellcode:
type
  TBuf = array[0..10000] of AnsiChar;

for i := 0 to len - 1 do
  write(FileHandle, TBuf(buf^)[i]);
Wie mache ich es richtig?
Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: PAnsiChar mit write in Datei schreiben

  Alt 17. Nov 2008, 10:55
mit einem Stream würde es so aussehen:
YourStream(YourBuffer^, number_of_bytes);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von coollupo
coollupo

Registriert seit: 25. Nov 2005
Ort: Seligenstadt
7 Beiträge
 
Delphi 2007 Architect
 
#3

Re: PAnsiChar mit write in Datei schreiben

  Alt 17. Nov 2008, 11:04
Hi, such mal hier im Forum nach "BlockWrite". Da bekommst Du schon jede Menge Hinweise.

var
WrittenBytes : integer;
DestFile : file;


..
{$I-}
BlockWrite(DestFile,buf^[0],10000,WrittenBytes);
{$I+}

if (IOResult<>0) then exit;

if (WrittenBytes<>10000) then exit;
..
Tipp: Dreckiges Geschirr schimmelt nicht, wenn man es einfriert.
  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 15:16 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