RemoveString nicht für Steuerzeichen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

RemoveString nicht für Steuerzeichen?

Beitrag von Sven »

Warum entfernt RemoveString() keine Steuerzeichen (CR, LF, TAB) aus dem Text? Wäre doch nett, um überflüssige CR+LF oder so zu entfernen.

Und warum zum Henker steht das nicht in der Hilfe, dass es nur für normale Zeichen (ab Chr(32)?) geht. Bei StringField() kann man doch auch mit TABs und co arbeiten. :evil:

Sven
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

geht doch?!

Code: Alles auswählen

a$=Chr(13)+Chr(10)+"hallo"+Chr(13)+Chr(10)

b$=ReplaceString(a$,Chr(13)+Chr(10),"")

For i=1 To Len(b$)
  c$=Mid(b$,i,1)
  Debug Str(Asc(c$))+" "+c$
Next
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
ORANGE
Beiträge: 19
Registriert: 29.12.2004 21:03

Beitrag von ORANGE »

Weil Steuerzeichen(CR, LF,usw) keine Strings.s sondern Bytes.b sind.
In einen String umgewandelt kommt immer ◙ als Ergebnis.
Nimm einfach WriteByte() oder ReadByte(). :wink:
Benutzeravatar
Donald
Beiträge: 307
Registriert: 03.01.2005 02:21
Wohnort: Marl

Beitrag von Donald »

kannst auch folgenden Code nehmen:

Code: Alles auswählen

;  Inhalt definieren
a$=Chr(13)+Chr(10)+"T E S T E I N T R A G"+Chr(13)+Chr(10) 

; Nur zur Kontrolle im Debug Fenster
b$=a$

;  Filtern
a$=RemoveString(a$,Chr(10),"")   ; löscht alle <LF>
a$=RemoveString(a$,Chr(13),"")   ; löscht alle <CR>
a$=RemoveString(a$,Chr(32),"")   ; löscht alle <SPACE>
; ... usw.
 
Debug b$
Debug a$
DONALD :D www.PureBasic-Donald.de gibt es im Moment nicht mehr
PureBasic - jaPBe - PureVisonXP - TailBite
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Aua, sorry, meine Schuld, ich hab den Wert gar nicht übergeben. :oops:

ReplaceString() ohne Übergabe funktioniert zwar, wenn man direkt im Speicher ersetzt, aber bei RemoveString() geht das natürlich nicht.

Dazu noch: Ist es eigentlich gefährlich, bei ReplaceString() und direktem Ersetzen im Speicher trotzdem noch die Übergabe in den gleichen String zu machen, also: text = ReplaceString(text, ",", ".", 2)

Sven
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Gefährlich ist es mit Sicherheit nicht, musst nur gucken ob's funktioniert. Wenn's geht kannste das so machen, obwohl das ohne "text = ..." paar Nanosekunden schneller sein dürfte.
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Antworten