Discussion:
[VFP] string
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
kocyb
2004-04-01 08:14:59 UTC
Permalink
Witam
Proste pytanko ale nie mogę znaść
Jak zmienić domyślną długość zmiennej typu strin ?

andrzej
Iks
2004-04-01 08:23:06 UTC
Permalink
Witam,
Post by kocyb
Jak zmienić domyślną długość zmiennej typu strin ?
Nie ma takiego typu , oficjalnie nazywa sie on CHAR.
I nie ma czegos takiego jak domyslna dlugosc, dlugosc
jest ustalana w momencie przypisania a nie inicjacji.

Inicjacja:
private CharVariable

po czyms takim CharVariable jest typu... boolean.

CharVariable = replicate('*',100)

po czyms takim zmienna ma dlugosc 100 i wypelniona jest gwazdkami.
Nastepnie mozesz zrobic kolejne przypisanie:
CharVariable = 2
i masz typ numeryczny.

Panuje wiec wolna amerykanka. Zmiennych mozna nie inicjowac
(beda domyslnie klasy private), mozna od razu do nich przypisywac wartosci.

--
pozdrawiam,
Iks
Ryszard Switek
2004-04-01 08:46:44 UTC
Permalink
Post by Iks
private CharVariable
po czyms takim CharVariable jest typu... boolean.
Mała poprawka:
LOCAL CharVariable
i typ jest logiczny, CharVariable = .F. Deklaracja PRIVATE nie tworzy zmiennej,
tylko stwierdza, że jeżeli zostanie użyta, to będzie prywatna (widoczna od tego
miejsca "w dół").
Pozdrawiam, Rysiek.
Iks
2004-04-01 20:24:58 UTC
Permalink
Post by Ryszard Switek
Post by Iks
private CharVariable
po czyms takim CharVariable jest typu... boolean.
LOCAL CharVariable
i typ jest logiczny, CharVariable = .F. Deklaracja PRIVATE nie tworzy zmiennej,
tylko stwierdza, że jeżeli zostanie użyta, to będzie prywatna (widoczna od tego
miejsca "w dół").
Oczywiscie. Odkad sie pojawil typ local (chyba z pierwszym visual) -
zapomnialem o private.

--
pozdrawiam,
Iks
Krzysztof Przyby³a
2004-04-01 08:48:19 UTC
Permalink
?Może jest możliwość wcześniejszej deklaracji typu
co uniemożliwiło by zmianę typu


KP.
Post by Iks
Witam,
Post by kocyb
Jak zmienić domyślną długość zmiennej typu strin ?
Nie ma takiego typu , oficjalnie nazywa sie on CHAR.
I nie ma czegos takiego jak domyslna dlugosc, dlugosc
jest ustalana w momencie przypisania a nie inicjacji.
private CharVariable
po czyms takim CharVariable jest typu... boolean.
CharVariable = replicate('*',100)
po czyms takim zmienna ma dlugosc 100 i wypelniona jest gwazdkami.
CharVariable = 2
i masz typ numeryczny.
Panuje wiec wolna amerykanka. Zmiennych mozna nie inicjowac
(beda domyslnie klasy private), mozna od razu do nich przypisywac wartosci.
--
pozdrawiam,
Iks
Maciej Kujawa
2004-04-01 14:28:29 UTC
Permalink
Nie ma. Można zadeklarować typ zmiennej ale tylko dla potrzeb IntelliSense.
Do zmiennej zadeklarowanej jako:
LOCAL my_var AS Character
poprawne są konstrukcje
my_var = 0
oraz
my_var = '0'

Wycinek z help'a:

Strong typing is not enforced at design time or at run time. In Visual
FoxPro, strong typing allows IntelliSense objects in the editor. Strong
typing also is used in OLEPUBLIC type libraries.

Pozdr. M.Kujawa
Post by Krzysztof Przyby³a
?Może jest możliwość wcześniejszej deklaracji typu
co uniemożliwiło by zmianę typu
KP.
Post by Iks
Witam,
Post by kocyb
Jak zmienić domyślną długość zmiennej typu strin ?
Nie ma takiego typu , oficjalnie nazywa sie on CHAR.
I nie ma czegos takiego jak domyslna dlugosc, dlugosc
jest ustalana w momencie przypisania a nie inicjacji.
private CharVariable
po czyms takim CharVariable jest typu... boolean.
CharVariable = replicate('*',100)
po czyms takim zmienna ma dlugosc 100 i wypelniona jest gwazdkami.
CharVariable = 2
i masz typ numeryczny.
Panuje wiec wolna amerykanka. Zmiennych mozna nie inicjowac
(beda domyslnie klasy private), mozna od razu do nich przypisywac
wartosci.
Post by Iks
--
pozdrawiam,
Iks
Jan KRAUS
2004-04-02 23:30:51 UTC
Permalink
A MOZE NAPISZ POCO CI TO POTRZEBNE BO
WYGLADA NA TO, ZE COS PRZEKOMBINOWALES.
JEZELI JEST TO POLE TABELI TO MASZ PROBLEM Z GLOWY.

JAN
kocyb
2004-04-04 16:53:16 UTC
Permalink
Post by Jan KRAUS
A MOZE NAPISZ POCO CI TO POTRZEBNE BO
WYGLADA NA TO, ZE COS PRZEKOMBINOWALES.
JEZELI JEST TO POLE TABELI TO MASZ PROBLEM Z GLOWY.
JAN
Pobieram rzy pomocy funkcji FGETS() kolejne linie z pliku teksowego
przypisuje je do do zmiennej np cTekst a na stęnie dziele ten tekst na
odpowiednie pola.
Problem polega na tym że zawartość zmiennej cTekst ma tylko 256 znaków
tak jak by na tym miejscu stał znacznik końca linijki

andrzej
Iks
2004-04-04 18:07:43 UTC
Permalink
Witam,
Post by kocyb
Pobieram rzy pomocy funkcji FGETS() kolejne linie z pliku teksowego
przypisuje je do do zmiennej np cTekst a na stęnie dziele ten tekst na
odpowiednie pola.
Problem polega na tym że zawartość zmiennej cTekst ma tylko 256 znaków
tak jak by na tym miejscu stał znacznik końca linijki
Trzeba bylo od razu tak pisac. To nie zmienna jest za mala, tylko funkcja
FGETS()
tak dziala. Jesli nie podasz ile znakow max. chcesz przeczytac, funkcja
umiesci
w zmiennej tylko 254 znaki, lub tyle ile stoi przed znakiem nowej linii.
Twoj rekord
ma pewnie wiecej niz 254 znaki, stad zostal obciety.

Dodaj do listy parametrow dlugosc lancucha do przeczytania:
cStr = FGETS(uchwyt,max_ilosc)
Funkcja przeczyta do napotkania znaku nowej linii, ale nie wiecej niz
max_ilosc znakow.

--
pozdrawiam,
Iks
kocyb
2004-04-05 09:48:25 UTC
Permalink
Post by Iks
Witam,
Post by kocyb
Pobieram rzy pomocy funkcji FGETS() kolejne linie z pliku teksowego
przypisuje je do do zmiennej np cTekst a na stęnie dziele ten tekst na
odpowiednie pola.
Problem polega na tym że zawartość zmiennej cTekst ma tylko 256 znaków
tak jak by na tym miejscu stał znacznik końca linijki
Trzeba bylo od razu tak pisac. To nie zmienna jest za mala, tylko funkcja
FGETS()
tak dziala. Jesli nie podasz ile znakow max. chcesz przeczytac, funkcja
umiesci
w zmiennej tylko 254 znaki, lub tyle ile stoi przed znakiem nowej linii.
Twoj rekord
ma pewnie wiecej niz 254 znaki, stad zostal obciety.
cStr = FGETS(uchwyt,max_ilosc)
Funkcja przeczyta do napotkania znaku nowej linii, ale nie wiecej niz
max_ilosc znakow.
--
pozdrawiam,
Iks
Oczywiscie ze dziala. Sam sie zastanawiam dlaczego nie przeczytalem
opisu funkcji FGETS(). Chyba dlatego ze wydawalo mi sie ze ja znam.

Dzieki Wszystkim

Loading...