Substituir Caracters
17/12/2003
0
#13, 9
fiz uma rotina q sustitui caracter 9 por ´ ´ (cinco espaços) mas não funciona direito pq quando o TAB foi dado depois de duas letras ele acrescenta cinco espaço e só poderia colocar 3 espaços.....
gustavo
By Alemão
Posts
17/12/2003
Beppe
function TabsToSpaces(const S: String; TabWidth: Integer): String; var I, L: Integer; begin Result := ´´; with TStringStream.Create(´´) do try L := 1; for I := 1 to Length(S) do begin case S[I] of 9: WriteString(StringOfChar(´ ´, TabWidth - (I - L) mod TabWidth)); else case S[I] of 10, 13: L := I; end; WriteString(S[I]); end; end; Result := DataString; finally Free; end; end;
17/12/2003
By Alemão
Utilizei assim....
TabsToSpaces(edTexto.Lines[i],7);
7 é o numero de espaços do TAB....
mas não substitui por espaços...
17/12/2003
Marcelo Saviski
então:
edTexto.Text := TabsToSpaces(edTexto.Text,7);
ouedTexto.Lines.Text := TabsToSpaces(edTexto.Lines.Text,7);
ou ainda:
L := edTexto.LineFromChar(edTexto.SelStart);
edTexto.Lines[L]:= TabsToSpaces(edTextol.Lines[L],7);
[i:99edd76258]{muda só a linha em que o cursor está}[/i:99edd76258]
17/12/2003
By Alemão
acho q esta calculando errado o tamanho do TAB....
posso te mandar os fontes pra vc dar uma olhada???
me passa teu (e 1/2)
o meu é
gustavoschepp(arroba)irani(ponto)com(ponto)br
17/12/2003
Marcelo Saviski
Tentando evitar Spam?
a função acima(do Ataliba) leva em consideração a coluna
ela vai arrumar os tabs de 7 em 7 colunas
17/12/2003
By Alemão
Clique aqui para fazer login e interagir na Comunidade :)