2016-06-02 3 views
0

Мне нужно скопировать информацию о курсоре в текстовый файл, который кодируется с использованием UTF-8.VFP 5 COPY TO команда

Моя текущая команда была: -

COPY TO (FILE NAME) DELIMITED WITH CHARACTER ";" 

По умолчанию текстовый файл был сохранен в ANSI, как я могу сделать это сохранить в UTF-8?

EDIT: Я использую VFP 5.

ответ

0

Я не уверен, попробуйте использовать StrConv()

StrConv (filetostr (FILE NAME), 10)

+0

Я пробовал, но VFP 5 не распознает FILETOSTR. Мне нужен альтернативный способ добиться этого. – Dvann

+0

Извините, это единственный способ, которым я это знаю. Надеюсь, кто-то может доставить вам дополнительную информацию! – Joh

0

1.Convert все Характер и Напоминание полей в UTF-8:

update table1 set field1=STRCONV(field1, 9) 

Это преобразует все не-ANSI характе rs в кодировку UTF-8.

  1. Экспозиция: COPY TO.
+0

Спасибо, я думаю, это сработает, но я не попробовал. Мои данные хранятся в курсоре, и у меня много полей. Не возражаете ли вы поделиться лучшим способом, который я могу использовать для обновления всех полей с помощью STRCONV вместо их обновления по одному? – Dvann

+0

Например, переместите все поля в цикле, выполнив 'STRCONV()' в полях 'character'. Или используйте инструмент пакетного преобразования, например _DBF Commander Pro_. – Oleg

0

Расширять по предложению Олега, вы можете перебирать все поля в данной таблице по ...

USE C:\SomePath\YourTable.dbf 
*/ Get list of all fields in the table's structure 
lnF = AFIELDS(laF, "YourTable") 
lcUpdFlds = "" 
*/ Prepare a field for allowing comma between multiple fields 
*/ but first time in is the "SET" command instead. 
lcNextFld = "set " 
FOR lnI = 1 TO lnF 
    */ Is it a character-based field 
    IF laF[ lnI, 2] = "C" OR laF[ lnI, 2] = "M" 
     lcFld = laF[ lnI, 1] 
     lcUpdFlds = lcUpdFlds + lcNextFld + lcFld + " = STRCONV(" + lcFld + ", 9) " 
     */ Any subsequent character based fields will have a COMMA 
     */ added between them. 
     lcNextFld = ", " 
    ENDIF 
ENDFOR 

обновления YourTable & lcUpdFlds

модифицированными, чтобы сделать одну команду обновления и поразить все столбцы против нескольких обновлений ... Особенно в таблице LARGER