AGB  ·  Datenschutz  ·  Impressum  







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

Erstes bestimmtes Zeichen abschneiden

Ein Thema von SaFu · begonnen am 12. Sep 2008 · letzter Beitrag vom 12. Sep 2008
Antwort Antwort
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

Erstes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 10:47
Tach

Hab da mal folgendes Problem.

Ich übergebe ein String an ein Label, der String ist öfter durch ein Komma getrennt.
Jetzt habe das Proble das ich immer an erster Stelle ein Komma habe das wurde ich gerne weg haben.

Hab es Schon mit Pos() / Copy() versucht da wird ja nur Kopiert ist nicht das richtige.

Auch mit Delete ist auch nicht das richtige weil ich das im onChange ereignis habe und wenn ich das öfter aufrufe ist irgendwann der ganze String weg.

Ich brüchte ne Lösung wo geprüft wird ob das erste Zeiche ein "," ist und das gelöscht wird.

Gruß Sascha
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 10:51
if (Length(s) > 0) and (s[1] = ',') then Delete(s,1,1);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 10:53
Hi!

Wieso geht das nicht mit Pos()?

Du könntest aber auch das erste Zeichen mit DeinString[1] prüfen, wenn es ein Komma ist, dann lösche das Zeichen oder kopiere den Rest in einen anderen String und übergebe ihn an das Label, wenn es kein Komma ist übergibts du den String direkt ans Label.

Edit: Zu langsam...
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 10:53
Oder mit Delphi-Referenz durchsuchenStringReplace.
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 11:02
Das geht auch nicht so ganz vielleicht wäre einer von euch mal sonet und würde da drüber schauen ich find den Fehler nicht.

Da hängt ja noch einiges mehr dran.

Delphi-Quellcode:
procedure TForm7.Edit1Change(Sender: TObject);
var sAnKollegeEdit,sAnKollegeEditFertig : String;
    iEditposition :Integer;
begin
  sAnKollegeEdit:= Edit1.Text;

  if (Length(sAnKollegeEdit) > 0) and (sAnKollegeEdit[1] = ',') then
  Delete(sAnKollegeEdit,1,1);

  Label1.Caption:= sAnKollegeEdit;
end;

function ColsToStr(sg: TStringGrid; colNums: array of Integer): string;
var iCol, iRow: Integer;
    s: string;
begin
  with TStringList.Create do
  try
    Sorted := True;
    for iCol := Low(colNums) to High(colNums) do
     for iRow := sg.FixedRows to Pred(sg.RowCount) do
      begin
        s:= Trim(sg.Cols[colNums[iCol]][iRow]);
        if (s <> '') and (IndexOf(s) < 0) then
          Add(s);
      end;
    Result := CommaText;
  finally
    Free;
  end;
end;

procedure TForm7.StringGrid1EditorLeave(Sender: TObject; ACol, ARow: Integer);
Var sTemp: String;
    slTemp: TStringlist;
Begin
   //Wenn eine der beiden Spalten verlassen wird, dann holen wir und erstmal die kommaseparierten Values dieser beiden Spalten
   If (ACol = 11) Or (ACol = 12) Then Begin
      sTemp := ColsToStr(StringGrid1, [11, 12]);

      //Anführungsstriche entfernen
      sTemp := StringReplace(sTemp, #34, '', [rfReplaceAll]);

      sTemp:= sTemp + ',' + Edit1.Text;

      //daraus müssen nun noch doppelte Einträge entfernt werden
      slTemp := TStringList.Create;
      Try
         slTemp.Sorted := True;
         slTemp.Duplicates := dupIgnore;
         slTemp.CommaText := sTemp;

         //Dem Edit den Kommatext zuweisen
         Edit1.Text := slTemp.CommaText;
      Finally
         slTemp.Free;
      End;
   End;
End;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 11:30
Hi,

kann es sein, dass das mit dem Komma nur passiert, wenn in den Spalten 11 und 12 nix drin ist ?

ich würde die Zeile
  sTemp := sTemp + ',' + Edit1.Text; ändern auf
Delphi-Quellcode:
if sTemp = 'then
   sTemp := Edit1.Text
else
  sTemp := sTemp + ',' + Edit1.Text;
Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von Reinhardtinho
Reinhardtinho

Registriert seit: 26. Feb 2007
411 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 11:31
was wird denn angezeigt?
Ich habe viel von meinem Geld für Alkohol, Weiber und schnelle Autos ausgegeben ... Den Rest habe ich einfach verpraßt.

George Best - 22.05.1946 - 25.11.2005 - nordirischer Fußballspieler
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Estes bestimmtes Zeichen abschneiden

  Alt 12. Sep 2008, 11:37
Zitat von thkerkmann:
Hi,

kann es sein, dass das mit dem Komma nur passiert, wenn in den Spalten 11 und 12 nix drin ist ?

ich würde die Zeile
  sTemp := sTemp + ',' + Edit1.Text; ändern auf
Delphi-Quellcode:
if sTemp = 'then
   sTemp := Edit1.Text
else
  sTemp := sTemp + ',' + Edit1.Text;
Gruss
Damit scheints ja richtig zu gehen jetzt wird auch nicht mehr das 1 Komma ins Edit übergeben und ich muss es nicht weg schneiden danke
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  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 01:00 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