Dwie pilne, niecierpiace zwloki sprawy

0

Witam i bardzo prosze o szybka reakcje.

  1. Potrzebuje funckji ktora zamieni dany ciag znakow na inny ciag znakow ze podanego stringa. Moze wygladac tak:
    function Zamien(var Gdzie: String; Co, NaCo: String);

  2. Konwersja z ISO-&gtWIN bo wyswietlaja mi sie durne krzaczki. Mozna by to zrobic powyzsza funkcja [ale trzeba by ja wywolac kilka razy :(, wiec moze ktos zna szybszy sposob] tylko trzeba mi wiedziec ktore kody ASCII w ISO odpowiadaja ktorym w WIN. Chodzi tylko o niektore polskie znaczki.

Obu rzeczy potrzebuje do pewnego projektu [przegladarki forum :)], a na razie mam dosc myslenia nad innymi rzeczami z tym zwiazanymi.

Czy wiecie ze cale forum [stan sprzed 30 minut] zajmuje 3.29MB??--sys:&gt logout....

0

Echh.. jak pilne, to pilne ;-)

Co do pierwszego:
Zakładam że jeśli napisałeś function, to naprawdę chodzi ci o funkcję, tylko zapomniałeś napisac że zwraca string.

function Zamien(Gdzie: String; Co, NaCo: String):string;
var
po:integer;
wynik:string;
begin
wynik:=Gdzie;
while pos(Co,wynik)&gt0 do begin
po:=pos(Co,wynik);
Delete(Wynik,po,length(co));
Insert(NaCo,wynik,po);
end;
Zamien:=wynik;
end;

To tyle jesli chodzi o pierwsze - kodowaniem się nie bawiłem więc niech ktoś inny ci pomoże - ja swoje odwaliłem ;-)

0

No więc po pierwsze przepraszam ze tak długo trwało, ale musiałem sprawdzić poprawnośc kodu. Po drugie ta moja funkcja wywali się jeśli zrobisz coś takiego:
Zamien('KIIIIIIII','KI','K')
Tzn. nie wywali się ale zwróci tylko 'K', bo nie ma ustawione coby przechodziła dalej, ale mam nadzieję że wybaczysz, bo się śpieszyłem ;-)

0
  1. a po co pisac samemu:

type
TReplaceFlags = set of (rfReplaceAll, rfIgnoreCase);
function StringReplace(const Gdzie, Co, NaCo: string; Flags: TReplaceFlags): string;

albo (z uzglednieniem ustawien lokalnych windy):

uses StrUtils;

function AnsiReplaceStr(const Gdzie, Co, NaCo: string): string;
*case-insensitive
function AnsiReplaceText(const Gdzie, Co, NaCo: string): string;
*case-sensitive--Pawel

Delphi6

0

Numi napisał:
&gtZakładam że jeśli napisałeś function, to naprawdę chodzi ci o funkcję, tylko zapomniałeś napisac że zwraca string.

Najpierw myslalem o funkcji
function Zamien(Gdzie: String; Co, NaCo: String): String;
ale potem pomyslalem ze szybciej dzialalaby procedura taka
procedure Zamien(var Gdzie: String; Co, NaCo: String);'
no bo poco kopiowac stringa do znnej zmiennej niech wykona operacje na tej samej.
Problem w tym ze zapomnialem zamienic funciton na procedure :) ale bylo juz troche pozno...

PS Nie przypuszczalem ze o tej porze jeszcze ktos na forum bedzie siedzial {browar} dla wytrwalych.--sys:&gt logout....

0

oto kody ascii znaczkow do zamiany :)

Znak sta ISO win asc
ą 185 177 185 97
ć 230 230 230 99
ś 156 182 156 115
ę 234 234 234 101
ż 191 191 191 122
ź 159 188 159 122
ł 179 179 179 108
ó 243 243 243 111
ń 241 241 241 110
Ą 165 161 165 65
Ć 198 198 198 67
Ś 140 166 140 83
Ę 202 202 202 69
Ż 175 175 175 90
Ź 143 172 143 90
Ł 163 163 163 76
Ó 211 211 211 79
Ń 209 209 209 78
---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Heh LKS chyba wcielo Ci dwie spacje przed albo po pierwszej kolumnie :) ale raczej przed.--sys:&gt logout....

0

Jak dopiszcze mniej istotne szczegoly programiku to bedzie juz gotwy!! Ale najpierw wysle to Adamowi.--sys:&gt logout....

0

Po pierwsze: warto pisac samemu, by zwiekszyć swą wiedzę ;-)
Po drugie: Mam nadzieję że program nie będzie jakiś leciwy, bo nie po to się poświęcałem ;-) by teraz zostało to użyte w jakimś chłamie ;-)

0

Numi napisał:
Po pierwsze: warto pisac samemu, by zwiekszyć swą wiedzę ;-)

Zasadniczo masz troche racji. Ale jesli bylbys konsekwentny to nie uzylbys gotowych funkcji Pos, Insert i Delete, tylko sam napisal odpowiedniki.

Moim zdaniem po to nieglupi ludzie z Borlanda pisali procedury i funkcje wykonujace czesto uzywane funkcje, zebym teraz nie musial tracic czasu i mogl od razu pracowac na wyzszym poziomie.

--Pawel {Delphi6 }

Po pierwsze: F1

1 użytkowników online, w tym zalogowanych: 0, gości: 1