Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает allt() / 8 сообщений из 8, страница 1 из 1
16.01.2014, 08:59
    #38527762
Scorp1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Проблема вот такая загоняю файл в массив, затем по нему пробегаюсь с выводом на экран везде прежде чем выводить убираю пробелы но результат что с allt() что без него одинаковый, и вообще почемуто если длинная строка то отображаются только первые несколько символов и все, хотя в дебагере в массиве полностью вся строка сидит и причем без пробелов.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
cText = FILETOSTR("futboll.TXT")
LOCAL ARRAY aText[1] 
ALINES(aText, cText)
FOR j=1 TO ALEN(aText)
IF AT('<li><a href=',aText(j)) > 0
susp
? STR(LEN(aText(j)))        
? STR(LEN(allt(aText(j))))
* одинаковые значения
? allt(aText(j))
* длина строки 217 символов
*выводит несколько первых
ENDIF
ENDF
...
Рейтинг: 0 / 0
16.01.2014, 11:05
    #38527877
Scorp1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Вот нашел частичное решение спасибо ВладимирМу

Код: sql
1.
2.
create cursor Test (f1 C(254), f2 c(254), f3 c(254), f4 c(254))
APPEND FROM WilliamHill_futboll1.TXT TYPE SDF



вопрос как исключить сразу попадание пустых строк в таблицу для увеличение скорострельности?
...
Рейтинг: 0 / 0
16.01.2014, 11:33
    #38527912
Scorp1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Код: sql
1.
2.
3.
create cursor Test (f1 C(254), f2 c(254), f3 c(254), f4 c(254))
APPEND FROM futboll.TXT TYPE SDF
select ALLTRIM(f1), ALLTRIM(f2), ALLTRIM(f3) from Test INTO ARRAY aText WHERE !empty(f1)



ну не убираются пробелы альтом ЧТО СДЕЛАТЬ????
...
Рейтинг: 0 / 0
16.01.2014, 11:39
    #38527925
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Scorp1978,

А как ты себе представляешь в массиве значения с разной длиной?
Естественно, что берется запись с максимальной длиной, а более короткие добиваются пробелами.
...
Рейтинг: 0 / 0
16.01.2014, 12:05
    #38527973
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Scorp1978убираю пробелы но результат что с allt() что без него одинаковый ...
Код: sql
1.
2.
3.
4.
5.
6.
? STR(LEN(aText(j)))        
? STR(LEN(allt(aText(j))))
* одинаковые значения
? allt(aText(j))
* длина строки 217 символов
*выводит несколько первых


Ты уверен что дело именно в пробелах? Может там табуляции или еще какой прозрачный символ? Проверь
Код: sql
1.
? asc(allt(aText(j)))

код пробела 32

Scorp1978
Код: sql
1.
select ALLTRIM(f1), ALLTRIM(f2), ALLTRIM(f3) from Test INTO ARRAY aText WHERE !empty(f1)


Никогда так не делай. Как выше написали ширина поля фиксированная в результате выборки. И эта ширина выбирается исходя из первой записи, т.е. если первая будет 10 символов, то поле будет С(10) и все более длинное вообще обрежется

Можешь попробовать использовать тип VARCHAR
Пример из хэлпа FVP9
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CLEAR
CREATE CURSOR myCursor (myVarCharField V(10), myCharField C(10))
INSERT INTO myCursor (myVarCharField, myCharField) VALUES ("a", "a")
INSERT INTO myCursor (myVarCharField, myCharField) VALUES ("aa", "aa")
INSERT INTO myCursor (myVarCharField, myCharField) VALUES ("aaa", "aaa")
INSERT INTO myCursor (myVarCharField, myCharField) VALUES ("aaaa", "aaaa")
BROWSE
GO TOP
DO WHILE !EOF()
   ? "# VarChar characters: ", LEN(myVarCharField), ; 
      ", # Char characters:      ", LEN(myCharField)
   ? 
   SKIP
ENDDO
return

...
Рейтинг: 0 / 0
16.01.2014, 12:26
    #38528014
Scorp1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
?
Код: sql
1.
asc(allt(aText(i+1,1)))



вот этот код первый символ выдает код 9
в дебагере значение aText(i+1,1)
" <h3>МЕЖДУНАРОДНЫЙ</h3> "...
...
Рейтинг: 0 / 0
16.01.2014, 12:36
    #38528044
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
9 - это табуляция, пиши так
Код: sql
1.
allt(chrtran(aText(i+1,1), chr(9), ' '))
...
Рейтинг: 0 / 0
16.01.2014, 12:47
    #38528063
Scorp1978
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает allt()
Получилось благодарю!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Не работает allt() / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]