AGB  ·  Datenschutz  ·  Impressum  







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

strings um ein bestimmtes zeichen vermindern

Ein Thema von Molzer · begonnen am 9. Jan 2009 · letzter Beitrag vom 9. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#1

strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:30
wie kann man aus einem string s ein bestimmtes zeichen s[i] abziehen??

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
s:='abcdefghij' ;

s:=s-s[4];//diese zeile ergibt einen fehler
showmessage(s);

end;
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:32
Hi!

Willst du quasi aus der Mitte ein Zeichen "ausschneiden"?
Ich denke, dann müsstest du quasi einen neuen String zusammenbauen aus den Zeichen, die du noch haben möchtest.
Dabei sollte dir Delphi-Referenz durchsuchencopy weiterhelfen.


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Klaus01

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

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:32
Mit Kanonen auf Spatzen:

s:=stringReplace(s,s[4],'',[]); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:32
delete(s,4,1);
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:33
Meinst du das Zeiceh aus dem String entfernen?
Delete()
Markus Kinzler
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#6

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 11:36
mein problem:

jede folge von leerzeichen >1 is durch ein einzelnes leerzeichen und der anzahl der leerzeichen zu ersetzen.

das wetter ______ist...
das wetter 6ist...

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var f:textfile;
z,i,n,y:integer;
s:string;
begin
n:=0;
if opendialog1.execute then begin
assignfile(f, opendialog1.filename);
reset(f);
read(f, s);
z:=length(s);
 showmessage(inttostr(z));
for i := 1 to z do begin
// while s[i] =char(32) do begin
  if s[i] =char(32) then
  n:=n+1;
  end;
  ;

  end;
  showmessage(s[i]);


    end;
      closefile(f);
  end;
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 13:43
Delphi-Quellcode:
Function ZapSpacesGeneric (Const aString : String) : String;
Var
  sPrevVersion : String;
Begin
  Result := aString;
  While Pos (' ', Result) > 0 Do // solange doppelte Leerzeichen vorhanden sind
    Result := StringReplace (Result, ' ',' ', [rfReplaceAll]) // ersetze sie durch ein Leerzeichen
End;
Eine knappe Implementierung mit Bordmitteln, die beinahe jeden Performancewettbewerb verliert, aber für den Hausgebrauch ausreichend ist. Im Prinzip werden solange alle doppelten Leerzeichen durch ein einziges Leerzeichen ersetzt, bis keine doppelten Leerzeichen mehr vorhanden sind.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Klaus01

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

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 14:07
Hallo,

@alzaimar
Dein Lösung zählt nicht die Anzahl der Leerzeichen wenn mehr als 1 Leerzeichen
hintereinander folgen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  j: Integer;
  s,s1: String;
begin
  s:='dies ist ein Test';
  s1:='';
  while pos(' ',s) > 0 do
    begin
      s1:=s1+copy(s,1,pos(' ',s));
      delete(s,1,pos(' ',s));
      if s[1] = ' then
        begin
          j:=2;
          while s[j] = ' do
            inc(j);
          delete(s,1,j-1);
          s1:=s1+IntToStr(j);
        end;
    end;
  s1:=s1+s;
  edit1.Text:=s1;
end;
Ausgabe:
dies ist 4ein 7Test

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 14:10
Hallo,

Du möchtest für die Leerzeichen so 'ner Art Lauflängenkodierung.
Dashier ist mal eben so schnell dahingedaddelt und sicherlich nicht fehlerfrei, aber vielleicht hilfts ja schon mal:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
          i : Integer;
          k : Integer;
          s : String;
          ch : Char;
          sIn : String;
begin
  sIn := 'Was steht denn hier jetzt an Leerzeichen?';
  i := 0;
  k := -1;
  s := '';
  for i := 1 to Length(sIn) do begin
    ch := sIn[i];
    case ch of
      ' ' : case k Of
             -1 : begin
                    s := s + ch;
                    Inc(k);
                  end;
            else
              inc(k);
            end;
    else
      case k of
        -1 : k := 0;
         0 : k := 0;
         1 : Begin
               s := s + ' ';
               k := 0;
             end;
      else
        s := s + ' ' + IntToStr(k);
        k := -1;
      end;
      s := s + ch;
    end;
  end;
  ShowMessage(sIn + #13 + s);
end;
Wenn es sich bei Deiner Datei um eine Textdatei handelt, könntest Du sie in eine Stringliste lesen und anstelle von sIn das Text-Attribut der Stringliste benutzen oder die Stringliste zeilenweise durchgehen oder auch die Textdatei zeilenweise lesen.

Und Klaus war schneller

edit: Schreibfehler korrigiert
  Mit Zitat antworten Zitat
Molzer

Registriert seit: 7. Dez 2008
70 Beiträge
 
#10

Re: strings um ein bestimmtes zeichen vermindern

  Alt 9. Jan 2009, 14:17
Danke für Eure Hilfe!!
Meine Version:
Borland® Delphi® für Microsoft® Windows™ Version 10.0.2288.42451 Update 2 Copyright © 2005 Borland® Software Corporation.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:29 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