Wiatrak Opublikowano 27 Marca 2009 Udostępnij Opublikowano 27 Marca 2009 Więc tak, mam 2 problemy z Delphi. 1. Mam funkcje function funkcja1(arg1:pchar; arg2: double):double; ... function funkcja2(arg1:pchar):pchar; funkcja1('tekst' + arg1 + chr(13)); Jak kompiluję to mi wywala: Incompatible types: 'String' and 'PAnsiChar' 2.Mam stringa 'abc[defg]hij' o nieznanych danych i długości, ale '[' i ']' tam na pewno są. Jak wyciągnąć tylko ten tekst, który jest pomiędzy [ ] ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 27 Marca 2009 Udostępnij Opublikowano 27 Marca 2009 Funkcja chr() zwraca znak, a nie string. Nie, to nie jest to samo :P . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wiatrak Opublikowano 27 Marca 2009 Autor Udostępnij Opublikowano 27 Marca 2009 Ale jak dam samo funkcja1('tekst' + chr(13)); to się kompiluje. Dziwne. Czyli jak przekonwertować? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 27 Marca 2009 Udostępnij Opublikowano 27 Marca 2009 Sry, w błąd cię wprowadziłem, string można z charem łączyć operatorem +. Nie możesz parametru innej funkcji sobie wsadzić od tak w programie :o . Dziwnie kombinujesz muszę przyznać. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Marca 2009 Udostępnij Opublikowano 27 Marca 2009 PChar jest tylko wskaźnikiem, a nie stringiem. :/ PChar( 'tekst' + String( arg1 ) + chr( 13 ) ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wiatrak Opublikowano 27 Marca 2009 Autor Udostępnij Opublikowano 27 Marca 2009 Dzięki, skompilowało się!! A może zna ktoś odpowiedź na drugie pytanie? W GMie robiłem to tak: string_copy(zmienna,(string_pos("[",zmienna)+1),(string_pos("]",zmienna)-string_pos("[",zmienna)-1)); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 27 Marca 2009 Udostępnij Opublikowano 27 Marca 2009 var str : String; start : Integer; begin str := 'abc[defg]hij'; start := Pos( '[', str ) + 1; ShowMessage( Copy( str, start, Pos( ']', str ) - start ) ); end; Na stringach. EDIT Tak lepiej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Wiatrak Opublikowano 27 Marca 2009 Autor Udostępnij Opublikowano 27 Marca 2009 Wielkie dzięki. Działa!!! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się