Search in paragraph's text: Difference between revisions

m
→‎{{header|Wren}}: Changed to Wren S/H
(Added 11l)
m (→‎{{header|Wren}}: Changed to Wren S/H)
 
(6 intermediate revisions by 5 users not shown)
Line 116:
=={{header|11l}}==
{{trans|Python}}
 
<syntaxhighlight lang="11l">
V f = File(‘Traceback.txt’)
Line 186 ⟶ 185:
substr is extracting only characters after "Traceback" appearance, until the next matching "Traceback" and "SystemError".
 
=={{header|JC}}==
<syntaxhighlight lang="c">
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define INPUT_FILE_NAME "Traceback.txt"
#define KEYWORD_STRING "SystemError"
#define TRACEBACK_STRING "Traceback (most recent call last):"
#define END_OF_PARAGRAPH "\n----------------\n"
 
char *load_paragraph( FILE *f );
 
int main() {
FILE *f = fopen( INPUT_FILE_NAME, "r" );
 
if( f ) {
char *par = NULL;
 
while( (par=load_paragraph(f)) ) {
if( strstr(par,KEYWORD_STRING) ) {
char *p = strstr( par, TRACEBACK_STRING );
 
if( p ) printf( p );
else printf( "%s\n%s", TRACEBACK_STRING, par );
 
printf( END_OF_PARAGRAPH );
}
 
free( par ); par = NULL;
}
 
if( !feof(f) )
puts( "End of file not reached." );
 
fclose( f ); f = NULL;
}
else {
puts( "Input file not opened." );
}
 
return 0;
}
 
/*===========================================================================
Starting from the current position, looks for the first occurrence of "\n\n"
in the file f, counting the number of characters from the current position
to "\n\n" itself (not included) or to the end of the file (whichever occurs
first). Resets the file to its original position, then returns the number of
characters.
If the funtions fails, it returns ((size_t)-1).
===========================================================================*/
 
size_t get_paragraph_length( FILE *f ) {
size_t l = ((size_t)-1);
 
if( f && !feof(f) ) {
fpos_t ex_pos;
 
if( 0==fgetpos(f,&ex_pos) ) {
int c;
 
for( c=fgetc(f); c!=EOF; c=fgetc(f) ) {
if( '\n'==c ) {
if( '\n'!=(c=fgetc(f)) ) {
ungetc( c, f );
}
else {
++l;
break;
}
}
 
++l;
}
 
l += EOF==c;
 
fsetpos( f, &ex_pos );
}
}
 
return l;
}
 
/*===========================================================================
Loads a paragraph from the file f. Paragraphs are detected looking for the
occurrences of "\n\n" separators. The loaded paragraph is put into a chunk of
memory allocated with malloc(). The pointer to that memory is returned.
If the function fails, no memory is allocated and NULL is returned.
===========================================================================*/
 
char *load_paragraph( FILE *f ) {
char *par = NULL;
 
if( !feof(f) ) {
size_t i, l = get_paragraph_length( f );
 
if( ((size_t)-1)!=l ) {
par = malloc( l+1 );
 
if( par ) {
for( i=0; i<l; ++i )
par[i] = fgetc( f );
par[i] = '\0';
 
/* just jump beyond the paragraph delimiter */
fgetc( f ); fgetc( f );
}
}
}
 
return par;
}
</syntaxhighlight>
{{ out }}
<pre>
Output as required by task.
</pre>
 
=={{header|C++}}==
<syntaxhighlight lang="c++">
#include <algorithm>
#include <cstdint>
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
 
const std::string PARAGRAPH_SEPARATOR = "\n\n";
 
int main() {
std::ifstream file;
file.open("../Traceback.txt");
std::stringstream stream;
stream << file.rdbuf();
std::string file_contents = stream.str();
 
std::vector<std::string> paragraphs;
uint64_t start;
uint64_t end = 0;
while ( ( start = file_contents.find_first_not_of(PARAGRAPH_SEPARATOR, end) ) != std::string::npos ) {
end = file_contents.find(PARAGRAPH_SEPARATOR, start);
paragraphs.emplace_back(file_contents.substr(start, end - start));
}
 
for ( const std::string& paragraph : paragraphs ) {
if ( paragraph.find("SystemError") != std::string::npos ) {
int32_t index = paragraph.find("Traceback (most recent call last):");
if ( index >= 0 ) {
std::cout << paragraph.substr(index) << std::endl;
std::cout << "----------------" << std::endl;
}
}
}
}
</syntaxhighlight>
{{ out }}
<pre>
Output as required by task.
</pre>
 
=={{header|J}}==
Implementation:
 
Line 234 ⟶ 395:
}
----------------
</pre>
 
=={{header|Java}}==
<syntaxhighlight lang="java">
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
 
public final class SearchInParagraphsText {
 
public static void main(String[] args) throws IOException {
Path filePath = Path.of("./Traceback.txt");
String fileContents = Files.readString(filePath, StandardCharsets.UTF_8);
String[] paragraphs = fileContents.split(PARAGRAPH_SEPARATOR);
for ( String paragraph : paragraphs ) {
if ( paragraph.contains("SystemError") ) {
int index = paragraph.indexOf("Traceback (most recent call last):");
if ( index >= 0 ) {
System.out.println(paragraph.substring(index));
System.out.println("----------------");
}
}
}
}
private static final String PARAGRAPH_SEPARATOR = "\r\n\r\n";
 
}
</syntaxhighlight>
{{ out }}
<pre>
Output as requested by task
</pre>
 
Line 265 ⟶ 459:
],
)
</syntaxhighlight>
 
=={{header|Nim}}==
{{trans|Python}}
<syntaxhighlight lang="Nim">import std/strutils
 
let rawText = readFile("Traceback.txt")
 
for paragraph in rawText.split("\n\n"):
if "SystemError" in paragraph:
let index = paragraph.find("Traceback (most recent call last):")
if index != -1:
echo paragraph[index..^1]
echo "----------------"
</syntaxhighlight>
 
Line 289 ⟶ 497:
<!--</syntaxhighlight>-->
Output as requested
 
=={{header|Phixmonti}}==
<syntaxhighlight lang="Phixmonti">include ..\Utilitys.pmt
 
"Traceback (most recent call last):" >ps
""
 
"Traceback.txt" "r" fopen >ps
 
tps 0 > while
tps fgets
number? if drop false else chain true endif
endwhile
 
ps> fclose
 
"\n\n" xplit
 
len for
get
"SystemError" find
if
tps find dup
if
snip ? "----------------" ? drop
else
drop tps ? ? "----------------" ?
endif
else
drop
endif
endfor
cps</syntaxhighlight>
{{out}}
<pre>Traceback (most recent call last):
vmodl.fault.SystemError: (vmodl.fault.SystemError) {
dynamicType = ,
dynamicProperty = (vmodl.DynamicProperty) [],
msg = 'A general system error occurred: Unable to complete Sysinfo operation. Please see the VMkernel log file for more details.: Sysinfo error: Bad parameterSee VMkernel log for details.',
faultCause = ,
faultMessage = (vmodl.LocalizableMessage) [],
reason = 'Unable to complete Sysinfo operation. Please see the VMkernel log file for more details.: Sysinfo error: Bad parameterSee VMkernel log for details.'
}
----------------
Traceback (most recent call last):
[Tue Jan 21 16:16:19.252221 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] SystemError: unable to access /home/dir
[Tue Jan 21 16:16:19.249067 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] mod_wsgi (pid=6515): Failed to exec Python script file '/home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi'.
[Tue Jan 21 16:16:19.249609 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] mod_wsgi (pid=6515): Exception occurred processing WSGI script '/home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi'.
----------------
Traceback (most recent call last): 11/01 18:24:57.728 ERROR| traceback:0013| File "/tmp/sysinfo/autoserv-0tMj3m/common_lib/log.py", line 70, in decorated_func 11/01 18:24:57.729 ERROR| traceback:0013| fn(*args, **dargs) 11/01 18:24:57.730 ERROR| traceback:0013| File "/tmp/sysinfo/autoserv-0tMj3m/bin/base_sysinfo.py", line 286, in log_after_each_test 11/01 18:24:57.731 ERROR| traceback:0013| old_packages = set(self._installed_packages) 11/01 18:24:57.731 ERROR| traceback:0013| SystemError: no such file or directory
----------------
Traceback (most recent call last):
File "/usr/lib/vmware-vpx/vsan-health/pyMoVsan/VsanClusterPrototypeImpl.py", line 1492, in WaitForUpdateTask
WaitForTask(task)
File "/usr/lib/vmware-vpx/pyJack/pyVim/task.py", line 123, in WaitForTask
raise task.info.error
vmodl.fault.SystemError: (vmodl.fault.SystemError) {
dynamicType = ,
dynamicProperty = (vmodl.DynamicProperty) [],
msg = 'A general system error occurred: Unable to complete Sysinfo operation. Please see the VMkernel log file for more details.: Sysinfo error: Bad parameterSee VMkernel log for details.',
faultCause = ,
faultMessage = (vmodl.LocalizableMessage) [],
reason = 'Unable to complete Sysinfo operation. Please see the VMkernel log file for more details.: Sysinfo error: Bad parameterSee VMkernel log for details.'
}
----------------
 
=== Press any key to exit ===</pre>
 
=={{header|Python}}==
Line 352 ⟶ 627:
reason = 'Unable to complete Sysinfo operation. Please see the VMkernel log file for more details.: Sysinfo error: Bad parameterSee VMkernel log for details.'
}</pre>
 
=={{header|sed}}==
<syntaxhighlight lang="sed">/./{
H
$!d
}
x
:l
/^Traceback (most recent call last):/!s/^.[^T]*//
t l
/SystemError/!d
a\
----------------</syntaxhighlight>
Output as requested by task.
 
=={{header|Wren}}==
{{libheader|Wren-pattern}}
<syntaxhighlight lang="ecmascriptwren">import "io" for File
import "./pattern" for Pattern
 
9,476

edits