【已解决】文本内容倒序排列请教
本帖最后由 chamlien 于 2014-11-2 23:32 编辑★★★★★
Nexus 7 (grouper)
Dante Leone on 13 Oct 2014 at 02:57
Реклама этого браузера везде уже задолбала
Reply to this review
★★★★★
App version 9.9.4
Galaxy S5 (lentislteskt)
ИЛЬЯ Петрушкин on 12 Oct 2014 at 22:27
Auto-translated from Macedonian
Shit and Parasha polneйshaя Show original review
Reply to this review想把五角星里面的内容从低往上调换排列成如下形式:(注意每组的顺序不能改变)
★★★★★
App version 9.9.4
Galaxy S5 (lentislteskt)
ИЛЬЯ Петрушкин on 12 Oct 2014 at 22:27
Auto-translated from Macedonian
Shit and Parasha polneйshaя Show original review
Reply to this review
★★★★★
Nexus 7 (grouper)
Dante Leone on 13 Oct 2014 at 02:57
Реклама этого браузера везде уже задолбала
Reply to this review
我只会倒序排列但是每行的顺序已经改变了,期待高人解决 很笨很笨的方法,再长点我自己看糊涂了~
Dim $str, $i = 1
Dim $line, $wTag
Dim $hFile
$hFile = FileOpen(@ScriptDir & "\test.txt")
If $hFile = -1 Then Exit (MsgBox(4096, "错误", "不能打开文件."))
While 1
$line = FileReadLine($hFile)
If @error = -1 Then ExitLoop
If StringInStr($line, "★") Then
$wTag = UBound($str)
ReDim $str
$str[$wTag] = $i
$str = UBound($str)
EndIf
$i += 1
WEnd
$wTag = UBound($str)
ReDim $str
$str[$wTag] = $i
$str = UBound($str)
Dim $newstr[$str], $nline
For $j = 1 To $str - 1
If ($j + 1) <= ($str - 1) Then
For $k = $str[$j] To $str[$j + 1] - 1
$line = FileReadLine($hFile, $k)
$nline &= $line & @CRLF
Next
$newstr[$j] = $nline
$nline = ""
EndIf
Next
FileClose($hFile)
Dim $result
For $i = UBound($newstr) - 1 To 0 Step -1
If $newstr[$i] <> "" Then $result &= $newstr[$i]
Next
MsgBox(0, 0, $result)
回复 1# chamlien Local $str = ClipGet()
Local $aRe = StringRegExp($str, '(?m)^★{5}[^★]+', 3)
If @error Then Exit MsgBox(16, 'err', 'getting wrong sting!')
Local $sNew = ''
For $i = UBound($aRe) -1 To 0 Step -1
$sNew &= $aRe[$i] & @CRLF
Next
MsgBox(0, '', $str & @CRLF & @CRLF & @CRLF & $sNew) Local $str = ClipGet()
Local $sRE = StringRegExpReplace($str, '(?s)(★.+?)(\r\n)(★.+)', '\3\2\1')
MsgBox(0, '替换结果', $sRE) 回复 4# afan
A版,试了一下你的代码,如果他的文本还有加长的话,似乎不通用。 回复 5# haijie1223
只是针对两段互换位置,尤其仅针对LZ的实例,如果是固定段数也可以增加固定表达式,否则一般就循环处理了 回复 2# haijie1223
办法是比较笨,不过我自己也写出了代码,用_FileReadToArray,判断起始和结束字符串,然后倒序,不过也比较麻烦,不知道还有好办法不? 回复 3# user3000
这个如果很多数据应该行不通的吧 回复 4# afan
这么简洁的代码?能适用于很多数据吗? 回复 9# chamlien
很多数据就用3#的代码吧Dim $hFile, $sCon, $Newstr
$hFile = FileOpen(@ScriptDir & "\test.txt")
If $hFile = -1 Then Exit (MsgBox(4096, "error", "File wrong!"))
$sCon = FileRead($hFile)
$astr = StringRegExp($sCon, '(?m)★+[^★]+', 3)
For $i = UBound($astr) - 1 To 0 Step -1
$Newstr &= $astr[$i] & @CRLF
Next
MsgBox(0, '', $Newstr)
回复 10# haijie1223
先收藏了,今晚回来测试一下 回复 10# haijie1223
测试后能倒序,但是多行数据会出现多个回车,去掉@CRLF又会出现个别数据没有回车,何解? 回复 12# chamlien #include <array.au3>
Dim $hFile, $sCon, $Newstr = ""
$hFile = FileOpen(@ScriptDir & "\test.txt")
If $hFile = -1 Then Exit (MsgBox(4096, "error", "File wrong!"))
$sCon = FileRead($hFile)
$sCon &= ""
$astr = StringRegExp($sCon, '(?m)★+[^★]+', 3)
For $i = UBound($astr) - 1 To 0 Step -1
$astr[$i] = StringTrimRight($astr[$i], 2)
$Newstr &= $astr[$i] & @CRLF
Next
MsgBox(0, '', $Newstr) 回复 13# haijie1223
代码测试通过,非常简洁,要好好研究一下。另外贴出我笨代码,294行的文本,这两个代码运行对比起来好像都差不多。(代码后面还有内容)
#include <Array.au3>
#include <File.au3>
_1234()
Func _1234();
Local $aRecords
If Not _FileReadToArray("源.txt", $aRecords) Then
MsgBox(4096, "错误", " 文件不存在!" & @error)
Exit
EndIf
For $line = $aRecords To 1 Step -1;从最后一行读取
If $aRecords[$line] == "★★★★★" Then
For $x = $line To $aRecords
If $aRecords[$x] == "Reply to this review" Then
_xuan($line, $x - $line, $aRecords);$line为识别到的行数并;循环识别到的组数
ExitLoop
ElseIf $aRecords[$x] == "Edit your reply" Then;这里是筛除掉有Edit your reply的一组
ExitLoop
EndIf
Next
ContinueLoop
EndIf
Next
EndFunc ;==>_1234
Func _xuan($shibiehang, $hangshu, $aRecords)
$d = FileOpen("test.txt", 257)
Local $cx = $shibiehang
For $nn = $cx To $hangshu + $shibiehang Step 1
FileWriteLine($d, $aRecords[$nn])
Next
FileClose($d)
;MsgBox(0,$shibiehang,$hangshu)
EndFunc ;==>_xuan
下面是我要处理的文本内容,要求是去除含有“Edit your reply”和“Auto-translated from”并实现倒序,代码我已经实现了,就是两次使用以上办法,先倒序去除掉有Edit your reply的组别,保存为文本再开始去除有Auto-translated from的组别,这样效率不高,看看高手的实现代码怎么样?★★★★★
Nexus 7 (grouper)
Dante Leone on 13 Oct 2014 at 02:57
Реклама этого браузера везде уже задолбала
Reply to this review
★★★★★
App version 9.9.4
Galaxy S5 (lentislteskt)
ИЛЬЯ Петрушкин on 12 Oct 2014 at 22:27
Auto-translated from Macedonian
Shit and Parasha polneйshaя Show original review
Reply to this review
★★★★★
Device
Глеб Андреев on 12 Oct 2014 at 21:29
Auto-translated from Bulgarian
Cal Show original review
Reply to this review
★★★★★
App version 9.9.4
Galaxy Pocket Neo (corsicass)
алексей афонченко on 12 Oct 2014 at 20:26
Полное говно
Reply to this review
★★★★★
Fonepad 7 (K012)
Elizabeth Salinas on 12 Oct 2014 at 20:06
Проблема с установкой После установки говорит, что не поддерживается на моем планшете и предлагает установить программу из неизвестного источника. Какого я должна неизвестную фигню устанавливать? Даже не знаю, о программе столько хороших отзывов, сделайте что-нибудь.
Reply to this review
★★★★★
App version 9.9.4
ITP-R208W (rk30sdk)
роман романов on 12 Oct 2014 at 19:52
Ебал я в рот это дермище. Я из-за этого говна был готов убить планшет об стену!
Reply to this review
★★★★★
App version 9.9.4
KENEKSI_Sky
Myss Magomedov on 12 Oct 2014 at 18:39
Фигня
Reply to this review
★★★★★
App version 9.9.4
Xperia SP (C5302)
Dana Rybakova on 12 Oct 2014 at 16:44
Auto-translated from Serbian
Count Show original review
Reply to this review
★★★★★
App version 9.9.4
Philips_W732_A
Ольга Романова on 12 Oct 2014 at 15:56
КАКОГО ЧЕРТА В ПРИЛОЖЕНИИ РЕКЛАМА ПОРНО И УВЕЛИЧЕНИЯ МУЖСКИХ ПИПИСЕК??? Я НЕ ХОЧУ, ЧТОБ МОЙ РЕБЕНОК СЛУЧАЙНО НА "ЭТО" НАТОЛКНУЛСЯ!!! УДАЛЯЮ!!! И НИКОМУ СКАЧИВАТЬ НЕ СОВЕТУЮ!!!!
Reply to this review
★★★★★
Galaxy S4 (ja3g)
Игорь Скопин on 12 Oct 2014 at 14:29
Не качается сука
Reply to this review
★★★★★
App version 9.8.9
Galaxy S4 (ja3g)
Мурад Байрамалиев on 12 Oct 2014 at 14:27
Auto-translated from Macedonian
Not whether tokens Show original review
Reply to this review
★★★★★
App version 9.7.5
Spark
Virusnya Jamshilov on 12 Oct 2014 at 14:03
Хуйня Вылетает
You replied on 6 May 2014 at 11:31
Добрый день! Приносим свои извинения за доставленные неудобства. Для полного понимания проблемы, пришлите нам, пожалуйста, на ru.support@ucweb.com более подробную информацию: 1. версию браузера 2. модель устройства 3. подробное описание проблемы по шагам. 4. IMEI устройства (*#06#)
Edit your reply
★★★★★
App version 9.9.2
Galaxy S3 (m0)
ali vahid on 12 Oct 2014 at 12:15
Удаляю.последнее обновление сделало браузер хламом
You replied on 2 Sep 2014 at 18:13
Добрый день! Приносим свои извинения за доставленные неудобства. Для полного понимания проблемы, пришлите нам, пожалуйста, на ru.support@ucweb.com более подробную информацию о Вашем устройстве и опишите проблему по шагам, мы постараемся решить ее как можно скорее. Спасибо!
Edit your reply
★★★★★
Galaxy Y (GT-S5360)
Денис Поляков on 12 Oct 2014 at 11:23
Приложение не грузиться.Пишет что памяти нехватает а у меня еще 14гб. на внутреней и 7гб. на внешней карте памяти осталось.
Reply to this review 回复 14# chamlien
你是删除行还是删除段啊,你的代码太麻烦,没看明白啊。删除行直接替换文本就可以了。删除段就用下面的:Dim $hFile, $sCon, $Newstr = ""
$hFile = FileOpen(@ScriptDir & "\test.txt")
If $hFile = -1 Then Exit (MsgBox(4096, "error", "File wrong!"))
$sCon = FileRead($hFile)
$sCon &= ""
$astr = StringRegExp($sCon, '(?m)★+[^★]+', 3)
For $i = UBound($astr) - 1 To 0 Step -1
$astr[$i] = StringTrimRight($astr[$i], 2)
If StringInStr($astr[$i], "Auto-translated from") Or StringInStr($astr[$i], "Edit your reply") Then $astr[$i] = ""
$Newstr &= $astr[$i] & @CRLF
Next
$Newstr = StringRegExpReplace($Newstr, "(\r\n)+", @CRLF)
MsgBox(0, '', $Newstr)
页:
[1]
2