Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String in Spalte durch xxx ersetzen (https://www.delphipraxis.net/114959-string-spalte-durch-xxx-ersetzen.html)

SaFu 3. Jun 2008 13:33


String in Spalte durch xxx ersetzen
 
HI

Und zwar hab ich mal wieder folgende Frage.

Wie ersetze ich in einer bestimmten Spalte in einem StringGrid die letzten drei Zeichen durch xxx

in Excel habe ich es schon hinbekommen

Delphi-Quellcode:
=Links(O2;LÄNGE(O2)-3)&"xxx"
wollte es jetzt aber mit einem klick Automatisieren??

Gruß Sascha

taaktaak 3. Jun 2008 13:37

Re: String in Spalte durch xxx ersetzen
 
Wo automatisieren? In Excel? In Delphi?

SaFu 3. Jun 2008 13:39

Re: String in Spalte durch xxx ersetzen
 
In Delphi

und dannach speicher ich das ganze als .xls was schon Teilweise funzt

taaktaak 3. Jun 2008 13:41

Re: String in Spalte durch xxx ersetzen
 
Na, dann kannst du diese Prozedur von Deddy die wir heute Vormittag hatten entsprechend anpassen, eben nicht mehr die maximale Breite ermitteln, sondern die Stringsprüfen und ggf. die letzten 3 Zeichen ersetzen.

SaFu 3. Jun 2008 13:44

Re: String in Spalte durch xxx ersetzen
 
Ihr wollt mich heute ärgern :stupid:

Ich blick bei diesem code nicht durch.

Erklär mir den bitte

taaktaak 3. Jun 2008 13:45

Re: String in Spalte durch xxx ersetzen
 
Also in etwa so:
Delphi-Quellcode:
procedure ConvertStrings(sl:TStrings);
var i, Current: integer;
begin
  for i := 0 to Pred(sl.Count) do s1[i]:=copy(s1[i],1,length(s1[i])-3)+'xxx'
end;
Geht sicherlich noch eleganter :roll:

SaFu 3. Jun 2008 13:49

Re: String in Spalte durch xxx ersetzen
 
Das meine ich ja wo hole ich den TStrings her und Warum Pred(vorgänger)

taaktaak 3. Jun 2008 13:53

Re: String in Spalte durch xxx ersetzen
 
Aufruf mit
ConvertStrings(StringGrid1.Cols[xx]);
mit xx = Spaltennummer, in der ausgetauscht werden soll

Pred(), weil die Indices mit 0 beginnen, das höchste Element hat dann den Index Count-1 und das ist das gleiche wie pred(Count)

SaFu 3. Jun 2008 14:38

Re: String in Spalte durch xxx ersetzen
 
Was mach ich jetzt falsch wenn eine zelle leer ist

Delphi-Quellcode:
procedure ConvertStrings(sl:TStrings);
var i :integer;
begin
  for i := 1 to Pred(sl.Count) do
  if sl[i] = '' then
   begin
    sl[i]:='leer'
   end
   else
  sl[i]:=copy(sl[i],1,length(sl[i])-3)+'xxx'
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  ConvertStrings(StringGrid1.Cols[14]);
end;

taaktaak 3. Jun 2008 14:50

Re: String in Spalte durch xxx ersetzen
 
Ich kann nichts falsches erkennen, ausser einem nicht notwendigem begin..end. Welches Ergebnis erwartest du denn? Wenn vorher nix in der Zelle war, sollte anschließend "leer" drin stehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:23 Uhr.
Seite 1 von 3  1 23      

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