AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Strings bearbeiten (suchen/ersetzen) und in Pchar unwandeln?
Thema durchsuchen
Ansicht
Themen-Optionen

Strings bearbeiten (suchen/ersetzen) und in Pchar unwandeln?

Ein Thema von Kruemel · begonnen am 2. Okt 2002 · letzter Beitrag vom 2. Okt 2002
Antwort Antwort
Kruemel

Registriert seit: 24. Sep 2002
15 Beiträge
 
Delphi 6 Personal
 
#1

Strings bearbeiten (suchen/ersetzen) und in Pchar unwandeln?

  Alt 2. Okt 2002, 11:52
Hi,

ich bin grad auf arbeit und ich muss einen aus anderen strings und integer bzw. float werten zusammengesetzten string nach einen komma abfragen diesen durch einen punkt ersetzen und dann in ein Pchar unwandeln damit ich diesen in eine Datei (TFileStream) schreiben kann. kann mir wer helfen ?

MfG

Krümel
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2
  Alt 2. Okt 2002, 12:02
Eigentlich brauchst Du keinen PChar. Kurzes Beispiel
Code:
var
  FinalString: String;
begin
  ...
  FinalString := 'Erster Teil' + varZweiterTeil + IntToStr(DritterTeil) + 'Vierter Teil';
  FileStream.Write[@FinalString[1], Length(FinalString));
  ...
end;
Fertig.
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 2. Okt 2002, 12:03
Moin Kruemel,

Code:
[color=#000080]// Nur um die Typen zu klären[/color]
[b]var[/b]
  iPos  : integer;
  sWork : [b]string[/b];
  fsWork : TFileStream;

[b]begin[/b]
  [color=#000080]// Komma gegen Punkt tauschen[/color]
  iPos := pos(',',sWork);
  [b]while[/b] iPos <> 0 [b]do[/b]
  [b]begin[/b]
    sWork[iPos] := '.';
    iPos := pos(',',sWork);
  [b]end[/b];
  [color=#000080]// und die Zeile wegschreiben[/color]
  fsWork.Write(sWork[1],Length(sWork));
[b]end[/b];
Wozu brauchst Du einen PChar?

[EDIT] @sakura: [/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Kruemel

Registriert seit: 24. Sep 2002
15 Beiträge
 
Delphi 6 Personal
 
#4
  Alt 2. Okt 2002, 12:08
@chriss

sieht ganz gut aus, aber inder folgenden zeile :
sWork[iPos] := '.';
sagt der compiler mir das
'Left side cannot be assigned to'

das problem hatte ich beim EDH auch schon

PS: PChar wollte ich verwenden weil ich vorher WriteBuffe benutzt habe
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 2. Okt 2002, 13:40
Moin Kruemel,

also die Meldung vom Compiler kann ich mir nicht erklären.
Dazu wäre mal ein ein wenig Sourcecode ganz hilfreich (u.a. mit den Deklarationen).
Bei mir funktioniert das so problemlos, egal ob ich sWork nun als array of char, pchar, Huge String oder Short String deklariere.

Bei WriteBuffer brauchst Du übrigens auch keinen PChar. Wenn der Buffer ein String ist, ist es nur wichtig, dass man die Position mit angibt, eben sWork[1] (z.B.). Wenn ich mich nicht sehr irre gilt das für alle Zugriffe, die einen untypisierten Buffer verwenden, nicht nur bei TFileStream.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Kruemel

Registriert seit: 24. Sep 2002
15 Beiträge
 
Delphi 6 Personal
 
#6
  Alt 2. Okt 2002, 13:55
Habs hinbekommen. der fehler war

statt function convert( S :String):String;
hatte ich function convert(var S : String):String;

stehen. jetzt klappt es.

danke.
Mfg
krümel
  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 03:42 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