2013-04-18 3 views

ответ

2

Если вы просто хотите загрузить содержимое дословно, то

on mouseUp 
    put url ("file:" & pathToFile) into tContents 
end mouseUp 

будет делать трюк. Чтобы получить столбцы в полях, вам нужно немного поработать. Один из способов:

on mouseUp 
    put url ("file:" & pathToFile) into tContents 
    -- set the itemDelimiter to tab -- if necessary 
    repeat for each line tLine in tContents 
    put item 1 of tLine & cr after field "fieldA" 
    put item 2 of tLine & cr after field "fieldB" 
    put item 3 of tLine & cr after field "fieldC" 
    end repeat 
end mouseUp 
+0

Где вызов «создать карту»? –

+0

Я думаю, вы бы поместили это в цикл повтора, если вы должны использовать базу данных на основе карты ... если файл CSV создается в электронной таблице, он, вероятно, имеет кавычки вокруг некоторых или всех полей. Есть несколько библиотек для разбора CSV .. возможно, на rev online ... –

+0

Поиск CSV на http://revonline2.runrev.com/search/ не дает результата. –

0

Если данные чистые, файлы CSV обычно имеют поле, разделенное символом ";" так что вы можете просто заменить их на вкладке и использовать «основное поле таблицы»:

put url ("file:" & pathToFile) into tData 
replace ";" with tab in tData 
put tData into field "data" 

Если данные UTF8 или что-то еще нужно, чтобы перевести его в первую очередь.

+0

** очистить файлы CSV ** должен, конечно, быть __a чистым CSV-файлом it__ – hliljegren

+0

Работает для данных ANSI, но не для UFT -8. Я использую 'put uniencode (tData," utf8 ") в tData'. Как установить unicodeText в поле таблицы? 'put tData в unicodeText поля" data "' дает синтаксическую ошибку. Поле «данные» - это сетка. –

+0

Вам нужно сделать 'set unicodeText поля данных 'to tData' – hliljegren

0

Для чтения данных в переменную lCsvData:

local lCsvData 

on importCsv 
    answer file "Chooose CSV file..." 
    if it is not empty then 
    put it into myPath 
    put url ("binfile:" & myPath) into myData 

Теперь мы можем расшифровать данные:

put urlDecode(urlEncode(myData,"UTF8")) into myData 

Проблема: данные могут содержать возвращения. Позволяет удалить возвращаемые значения из элементов. При необходимости вы можете обрабатывать каждый элемент отдельно.

put empty into lCsvData 
    set the itemDel to semicolon 
    repeat for each line myLine in myData 
     repeat for each item myItem in myLine 
     put replaceText(myItem,cr,numToChar(14)) after lCsvData 
     end repeat 
     put cr after lCsvData 
    end repeat 
    end if 
end importCsv 

Теперь у вас есть чистые данные. Вы можете выбрать линию и поместить ее в поле таким образом:

on showLine theLine 
    put line theLine of of lCsvData into myLine 
    set the itemDel to semicolon 
    repeat for each item myItem in myLine 
    put replaceText(myLine,numToChar(14),tab) into fld 1 
    end repeat 
end showLine 

где theLine - целое число. Вы можете использовать cr вместо вкладки, и вы можете настроить этот скрипт любым способом, который вы хотите отформатировать поле вывода.

Смежные вопросы