Autor |
Beitrag |
csigg
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Mi 13.04.05 08:49
wie kann ich von einem String das letzte Zeichen wehschneiden, gibts da ein direkten Befehel, oder muss ich mir da selber was zusammenbasteln??
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mi 13.04.05 08:53
Hallo wenns nicht grad ein "\" sein soll, kannst du dir das schnell mit delete und lenght zusmammenbasteln.
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
Holgerwa
      
Beiträge: 325
WIN XP Pro, Vista Business
Delphi 7 Pro, BDS 2006 Pro
|
Verfasst: Mi 13.04.05 08:53
Hallo
Delphi-Quelltext 1:
| str := Copy (str, 1, Length (str) - 1); |
Holger
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Mi 13.04.05 09:27
Delete(Str,length(str),1);
_________________ wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 08:58
hab ich so, aber ich sollte erst mal prüfen ob das Zeichen überhaupt dran ist.
Es wird nicht immer angefügt, und ich hab noch nicht herausgefunden wann, oder wann nicht.
Im Moment find ich das Zeichen leider nirgend, sonst hätt ich ein Screenshot gemacht und hier gepostet. Sieht ähnlich aus wie das Pipe Symbol, nur ist der Strich kürzer und dicker.
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: Do 14.04.05 09:03
Hi,
Delphi-Quelltext 1:
| Delete(str, pos('zeichen', str), 1); |
_________________ Stellen Sie sich bitte Zirkusmusik vor.
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 09:12
@o.d.g Das wär eigentlich das was ich brauch, muss jetzt nur noch das zeichen ausfindig machen, bzw. den ASCI-CODE herausfinden.
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: Do 14.04.05 09:17
Kopier dir doch das Zeichen raus, wenn es mal vorhanden ist und mach hol dir den bytewert so?
Bevor du per Auge dann im ASCII- Code nachguckst und vergleichst.
Im Extended ASCII gibt es 5 fast gleich aussehende Zeichen, die auf deine Beschreibung passen.
Wär halt schneller:
Delphi-Quelltext

_________________ Stellen Sie sich bitte Zirkusmusik vor.
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 09:29
ok, danke, das ist das richtige.
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 10:15
also jetzt hab ich das Zeichen,
@ o.d.g. Ich kann das leider nicht so machen wie du es gemeint hast, mein Zeichen ist in Delphi nicht darstellbar, hab so das dumme gefühl dass es sich um ein Carrege Return oder NewLine handelt.
Hier nun mein Bild:
Einloggen, um Attachments anzusehen!
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 14.04.05 10:47
Da es zwei aufeinanderfolgende Zeichen sind, liegst du vermutlich richtig. Die ASCII-Codes sind #13#10, falls du es gerade nicht weißt. 
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 10:59
also muss ich prüfen ob das letzte Zeichen ein #10 oder #13 ist, und wenn ja abschneiden, oder??
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 14.04.05 11:05
Nicht ganz. So:
Delphi-Quelltext 1:
| Delete(str, pos(#13#10, str), 2); |
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 11:08
aber ich muss doch davor prüfen ob es ein #10 oder ein #13 ist, weil es ja nicht unbedingt jedes mal da ist.
(Sorry, kann das ganze nur von c++, da geht es so ähnlich)
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: Do 14.04.05 11:09
Delphi-Quelltext 1: 2: 3:
| begin Delete(str, pos(#$A#$D, str), 4); end; |
_________________ Stellen Sie sich bitte Zirkusmusik vor.
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: Do 14.04.05 11:11
csigg hat folgendes geschrieben: | aber ich muss doch davor prüfen ob es ein #10 oder ein #13 ist, weil es ja nicht unbedingt jedes mal da ist.
(Sorry, kann das ganze nur von c++, da geht es so ähnlich) |
Nope, wenn Delete nix findet, wird nichts gelöscht.
pos gibt dann 0 zurück und delete löscht nichts an der position 0.
strings beginnen bei 1
//EDIT: STOP, ich hab da grad nen Fehler bemerkt *kichert* Wart mal kurz.
//EDIT2: ne, passt schon.. bin verplant 
_________________ Stellen Sie sich bitte Zirkusmusik vor.
Zuletzt bearbeitet von opfer.der.genauigkeit am Do 14.04.05 11:13, insgesamt 1-mal bearbeitet
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Do 14.04.05 11:13
opfer.der.genauigkeit hat folgendes geschrieben: | Delphi-Quelltext 1: 2: 3:
| begin Delete(str, pos(#$A#$D, str), 4); end; | |
Und ich war noch am überlegen, ob ich die Hex-Codes mit angebe.
btw: warum löscht du 4 Zeichen, wo doch nur 2 da sein können?
@csigg:
Delphi-Quelltext 1: 2: 3: 4:
| begin if Pos(#13#10, str) > 0 then Delete(str, pos(#13#10, str), 2); end; |
So wird nur gelöscht, wenn die Zeichen auch da sind.
|
|
opfer.der.genauigkeit
      
Beiträge: 754
Erhaltene Danke: 1
|
Verfasst: Do 14.04.05 11:15
_________________ Stellen Sie sich bitte Zirkusmusik vor.
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Do 14.04.05 11:19
ok, funtioniert wunderbar, dankeschön
|
|
csigg 
      
Beiträge: 706
WIn XP, Win NT, Win2000, Suse8.0
Delphi 5, Delphi 6
|
Verfasst: Mi 27.07.05 08:52
Wenn ich jetzt aber bis zum \ alles abschneiden will, wie geht es dann??
Also ich hab ein Datei-Namen, und brauch das Verzeichnis davon
|
|