Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 21.02.2018, 10:23   #1
Tik-Tik
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 45
Репутация: 10
По умолчанию Помогите распарсить текстовый файл

нужно из файла .txt вытащить все cтроки которые повторяются не меньше 2ух раз остальное удалить и удалить все строки которые состоят не из английских букв и цифр удаляем строку
в файл .txt вот такой вот фотрмат списка
fdsfsdffsdf
fsfsdfsdf
fdsfsdf
fdsfsdfsdf
fsdfsdfsdf
помогите пожалуйста
Tik-Tik вне форума   Ответить с цитированием
Старый 21.02.2018, 11:38   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

Чем помочь то?
Что сделали, что не получается?
На каком ЯВУ программируете?

не всё понятно.

Цитата:
Сообщение от Tik-Tik Посмотреть сообщение
вытащить все cтроки которые повторяются не меньше 2ух
и оставить их столько раз, сколько они повторились?

Цитата:
Сообщение от Tik-Tik Посмотреть сообщение
и удалить все строки которые состоят не из английских букв и цифр
например, если в строке есть ОДИН символ, которые не является английской буквой или цифрой, эту строку удалять?
А если этот символ символ " " (пробел) или знак пунктуации?

ок.
Пусть дан список
Код:

z1
  z22
z33
z1
z22
z1
z z
a1
a--a
a2

a2

z1
пример1
a2

---------------------

что должно получиться в результате?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 21.02.2018, 11:40   #3
NetSpace
Профессионал
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Адрес: п.Путеец, Печорский р-н
Сообщений: 1,266
Репутация: 482
По умолчанию

1. объявить столько строковых переменных, сколько строк. присваиваем переменным строки. короче, массив строк.
2. цикл. сравниваем N-ю строку со всеми остальными. тут же в цикле счётчик, который увеличивается на 1, если среди остальных находится хотя бы одна похожая.
3. в конце, когда нашли похожие, проверка по коду символов, есть ли в строке символы с кодом более 127(или по таблице кодов глянь, там цифры и кириллические буквы с какого номера начинаются)
__________________
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума   Ответить с цитированием
Старый 21.02.2018, 12:54   #4
СтудПом
Форумчанин
 
Регистрация: 08.11.2017
Сообщений: 355
Репутация: 114
По умолчанию

1. Отсортировать
2. Пропустить через uniq -c
3. Из результата uniq выбрать те, которые встречаются по одному разу
4. Одиночные строки в цикле удалить grep-ом или сделать скрипт для sed-а
СтудПом вне форума   Ответить с цитированием
Старый 21.02.2018, 13:29   #5
Tik-Tik
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 45
Репутация: 10
По умолчанию

строки такова типа файлы больше 100мб
dssdsfsdfsf
dssfs112
sdfsdfsdf
dsfdsfs212321
324234
sdfsdfffsd
fdsfsdfsdf
fsdfsdfsffs
+32 вы^& ? такую сроку удаляем
Цитата:
например, если в строке есть ОДИН символ, которые не является английской буквой или цифрой, эту строку удалять?
А если этот символ символ " " (пробел) или знак пунктуации?
все что не анг буква или цифра строку удаляем


получится долно так
dssdsfsdfsf
dssfs112
sdfsdfsdf
dsfdsfs212321
324234
sdfsdfffsd
fdsfsdfsdf

Последний раз редактировалось Tik-Tik; 21.02.2018 в 13:34.
Tik-Tik вне форума   Ответить с цитированием
Старый 21.02.2018, 14:19   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

понятно.

Цитата:
Сообщение от Tik-Tik Посмотреть сообщение
строки такова типа файлы больше 100мб
их придётся грузить в память.
но, думаю, что это не проблема.

а почему Вы не ответили на другие мои вопросы?


Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Чем помочь то?
Что сделали, что не получается?
На каком ЯВУ программируете?
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и оставить их столько раз, сколько они повторились?
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Пусть дан список
...
что должно получиться в результате?
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 21.02.2018, 14:29   #7
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,607
Репутация: 6210
По умолчанию

Код:

CREATE FUNCTION uf_IsLatinAndNumber (@s varchar(100)) RETURNS tinyint AS
BEGIN
  DECLARE @i int,@k int,@t int
  SELECT @i=1,@k=LEN(@s)
  WHILE @i<=@k BEGIN
    SET @t=ASCII(SUBSTRING(@s,@i,1))
    IF (@t<48 OR @t>57) AND (@t<65 OR @t>90) AND (@t<97 OR @t>112) BEGIN RETURN(0) END
    SET @i=@i+1
  END
  RETURN(1)
END

--DROP TABLE #TempTable
CREATE TABLE #TempTable (f1 varchar(100) NULL)
BULK INSERT #TempTable FROM 'здесь полное имя файла' WITH (CODEPAGE = 1251)
SELECT f1 FROM #TempTable WHERE f1 IS NOT NULL AND dbo.uf_IsLatinAndNumber(f1)=1 GROUP BY f1 HAVING COUNT(*)>1

Цитата:
вытащить все cтроки которые повторяются не меньше 2ух раз остальное удалить и удалить все строки которые состоят не из английских букв и цифр удаляем строку
в примере из #5 нет ни одной повторяющейся строки. согласно условия в результате должно быть 0 строк ))
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.02.2018 в 14:34.
Аватар вне форума   Ответить с цитированием
Старый 21.02.2018, 14:42   #8
Tik-Tik
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 45
Репутация: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
[CODE]CREATE FUNCTION uf_IsLatinAndNumber (@s varchar(100)) RETURNS tinyint AS
BEGIN
DECLARE @i int,@k int,@t int
SELECT @i=1,@k=LEN(@s)
спасибо вам большое
а что это за язык ?)
или это батник можно создать?
а в прмере номер #5 То поросто пример
на самом деле там 100мб сток (

Последний раз редактировалось Tik-Tik; 21.02.2018 в 14:45.
Tik-Tik вне форума   Ответить с цитированием
Старый 21.02.2018, 14:44   #9
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,607
Репутация: 6210
По умолчанию

Тебе же без разницы какой язык )) Это скрипт для MS SQL
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 21.02.2018, 14:48   #10
Tik-Tik
Пользователь
 
Регистрация: 06.02.2009
Сообщений: 45
Репутация: 10
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Тебе же без разницы какой язык )) Это скрипт для MS SQL
а как запустить ?
первый раз с таким сталкиваюсь

Последний раз редактировалось Tik-Tik; 21.02.2018 в 14:56.
Tik-Tik вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
распарсить текстовый файл и получить массив вида array( “(0:00)”=>“text1”,“(0:30)”=>“text2” ) cheburashkaRF PHP 5 16.08.2016 00:48
Как распарсить файл *.txt в access. VladimirC2004 Microsoft Office Access 5 06.11.2011 15:20
Помогите с 2-мя задачами на тему текстовый файл. aleksandrdss Помощь студентам 1 12.04.2009 00:20
Помогите с 2-мя задачами на тему текстовый файл. aleksandrdss Помощь студентам 0 11.04.2009 04:02


07:22.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru