Я новенек в SmallTalk'е. Вот пытаюсь понять, как работать с файлами чтение/запись.
Есть с *.csv файл с содержимым: 200;100 300;500 Как его прочитать, распарсить и добавить в коллекцию (список). Т.е. должен получиться список массивов чисел, по два числа на строку. -- http://groups.google.ru/group/sugr |
Очень желательно указывать хотя бы каким именно Smalltalk-ом вы пользуетесь. Если речь о Pharo/Squeak, то вот здесь есть парсерочек: Я примерно год назад пользовался его 6-ой версией. Сейчас не помню подробностей, но в той или предыдущей версии приходилось что-то патчить, что-то несложное. Но там сейчас уже 4 обновления добавилось, возможно уже и не надо будет допиливать. Best regards, Dennis Schetinin On Wednesday, 26 September 2012 г. at 17:04, Andrey Ostapenko wrote:
http://groups.google.ru/group/sugr |
In reply to this post by Andrey Ostapenko
Пользоваться Stream. Почитай описание в IDE. Если знаешь java, то это похоже на Iterator.
Вообщем, итерируешь по файлу, и складываешь в переменную, доходишь до точки с запятой, добавляешь переменную в массив. Дошел до конца строки - добавляешь массив к другому массиву. Дошел до конца файла - больше не итерируешь. В итоге у тебя получится массив массивов, представляющих собой строки и содержащих числа из строки. Как-то так.
-- среда, 26 сентября 2012 г., 16:04:58 UTC+3 пользователь Andrey Ostapenko написал: Я новенек в SmallTalk'е. Вот пытаюсь понять, как работать с файлами чтение/запись. http://groups.google.ru/group/sugr |
In reply to this post by Dennis Schetinin
Я невнимательно прочитал исходное сообщение, переусложнил задачу. Проще написать в данном случае написать самому. :)
On Wednesday, 26 September 2012 г. at 17:16, Dennis Schetinin wrote:
http://groups.google.ru/group/sugr |
In reply to this post by Andrey Ostapenko
CONTENTS DELETED
The author has deleted this message.
|
In reply to this post by Andrey Ostapenko
CONTENTS DELETED
The author has deleted this message.
|
Спасибо все кто откликнулся. Разобраться помог вот этот блог. А как сделать условие на проверку наличия файла по указанному пути? Т.е. если файл, то причитать его и сделать то то и то-то, а если нет файла, то ничего и не вываливаться в ошибку. среда, 26 сентября 2012 г., 18:03:43 UTC+4 пользователь Владимир Мусулайнен написал: И да, если захочется самому распарсить файл и будет не понятно как, то скажите об этом - можно и код набросать.-- http://groups.google.ru/group/sugr |
Использую Pharo/Squeak
среда, 26 сентября 2012 г., 21:29:49 UTC+4 пользователь Andrey Ostapenko написал: -- http://groups.google.ru/group/sugr |
Открытие файла выполнить в блоке:
[file open.] on: Error do: [:ex| <обработка ошибки>]. Полезно посмотреть категорию Files-Kernel. В ней собраны как классы файлов, так и исключения, которые можно использовать вместо Error. 26 сентября 2012 г., 23:31 пользователь Andrey Ostapenko <[hidden email]> написал: Использую Pharo/Squeak -- http://groups.google.ru/group/sugr |
In reply to this post by Andrey Ostapenko
CONTENTS DELETED
The author has deleted this message.
|
In reply to this post by Andrey Ostapenko
Вот так сделала, вроде работает.
file := FSLocator vmDirectory / 'test.csv'. file exists ifFalse: [^self]. (((FileStream readOnlyFileNamed: file) contentsOfEntireFile " read and close " findTokens: String crlf) " split into lines " reject: [:e | e isEmpty]) " lose empty lines " collect: [:e | e findTokens: $;] " split into fields ". среда, 26 сентября 2012 г., 17:04:58 UTC+4 пользователь Andrey Ostapenko написал: Я новенек в SmallTalk'е. Вот пытаюсь понять, как работать с файлами чтение/запись.-- http://groups.google.ru/group/sugr |
Free forum by Nabble | Edit this page |