How to read random lines?
Hi everyone,
I am trying to write a program that will take a random lines from a number text files and copy them to a new document.
Is there a way to read specific lines in a document?
For example if I set an int array to hold 20 random numbers, (23, 504, 498, etc...)
can i then jump to each of these lines in the document and output the data on each line??
I have tried the RandomAccessFile seek method but that only moves a certain number of bytes(not lines).
I have also tried:
String tempLine = null;
// where numLines is the total number of lines in the document
// where randInput is my RandomAccessFile
For (int i = 0; i < numLines; i++)
tempLine = (randInput.readLine())
for(int k = 0; k < 20; k++)
if(i == randNums[k])
out.println(tempLine);
but this method is too slow, as some of my input files are over 500,000 lines in length.
Can anyone please suggest a faster more efficient method??
Many Thanks
If that is really the requirement then I suggest you
pre-process the file into some other form so it is
easier to fulfil the requirement.
For example you could copy the lines into a database
table, then choose random records from the table. Or
you could copy the lines into a new file where all
the lines had the same length (pad with blanks or
nulls or whatever you need to get back the original
line), which would make it possible to seek to line N.How about cache first the file, by reading the each line in the file and store that line in an array?
ie.
package com.yahoo.ronilloang.idunoifthisright;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Vector;
* How about caching first then randomly read? This maybe slow or definitely slow in performance.
* @author Ronillo Ang
public class CacheFirstThenRandomlyPick{
private String[] lines;
private int lineCount;
public CacheFirstThenRandomlyPick(String fileName) throws IOException{
File file = new File(fileName);
if(file.exists()){
BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
String line = bufferedReader.readLine();
while(line != null){
addLine(line);
line = bufferedReader.readLine();
trim();
randomlyPickAndWrite();
bufferedReader.close();
private void addLine(String line){
if(lines == null)
lines = new String[10];
checkAndExpandCapacityAsNeeded(lineCount + 1);
lines[lineCount++] = line;
private void checkAndExpandCapacityAsNeeded(int minCapacity){
int oldCapacity = lines.length;
if(minCapacity > oldCapacity){
int newCapacity = oldCapacity * 2;
while(minCapacity >= newCapacity)
newCapacity += 10;
String[] oldLines = lines;
lines = new String[newCapacity];
System.arraycopy(oldLines, 0, lines, 0, lineCount);
private void trim(){
if(lineCount > 0 && lineCount < lines.length){
String[] oldLines = lines;
lines = new String[lineCount];
System.arraycopy(oldLines, 0, lines, 0, lineCount);
private void randomlyPickAndWrite() throws IOException{
Vector drawnNumber = new Vector();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File("out.txt")), "8859_1"));
for(int index = 0; index < lineCount; ++index){
int whatLineToRead = (int)(Math.random() * lineCount);
while(drawnNumber.contains(String.valueOf(whatLineToRead)))
whatLineToRead = (int)(Math.random() * lineCount);
drawnNumber.addElement(String.valueOf(whatLineToRead));
bufferedWriter.write(lines[whatLineToRead]);
bufferedWriter.newLine();
bufferedWriter.flush();
bufferedWriter.close();
public static void main(String[] args) throws IOException{
if(args.length == 1){
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm:ss", Locale.getDefault());
System.out.println("Program start at " + sdf.format(new Date()));
new CacheFirstThenRandomlyPick(args[0]);
System.out.println("Program ended at " + sdf.format(new Date()));
else
System.out.println("Usage: java com.yahoo.ronilloang.idunoifthisright.CacheFirstThenRandomlyPick <text file>");
System.out.println("\ndone.");
}What do you think? Definitely wrong? Okay. This just what I think. Never mind.
Thank you. -Ronillo
Similar Messages
-
How to read specific line in a file through UNIX shell script..
Dear Friends,
I have generated .ldt file under admin/import/US folder through FND_LOAD script for Download the responsibility.
I registred Shell script (Host concurrent program) in Oracle apps. Now i want to read the file in speciific line which i was generated in admin/import/US folder through unix shell script. Please help me how to read specific line and the i want to replace that which i am going to read the specific line.
Thanks in advance..
Regards,
Velu.Hi,
Thanks for reply,
My requirement i have to find the specific line in a file and find and replace needed word over there it's should happen programatically. i want to read specific line in a file Once complete find and replace the condition should exists. The loop will go to next file and read the same line in next file also do the same process upto how many files over there.i am doing through UNIX shell script. Please help me out to find the
Your suggestion is highly appriciated.
Thanks,
Velu. -
How to read current line number in function module sourrce code?
Hi All,
How to read current line number in function module sourrce code?
regards,
AnujIf you have new editor you would be able to see the line number.
Or in the Dump screen - there is a button called Debugger - click that you would be able to see the code where dump has occured.. you would be able to find the line number from there.
To get the new editor with line number , you need to change the settingsin SE38.
Regards
Vivek -
How to read multiple lines using 'REUSE_ALV_GRID_DISPLAY'
Hi,
In ALV report the FM 'REUSE_ALV_GRID_DISPLAY' used.
EXPORTING
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
How to read multiple lines in the following dynamic subroutine ?
I am able to read single value through p_selfld.
Nut the requirement is to change the values in more than 1 row for a fld (edit mode)
FORM USER_COMMAND USING P_UCOMM TYPE SY-UCOMM
P_SELFLD TYPE SLIS_SELFIELD.
endform
Thanks in advanceYou can get the reference by a dirty assign, but this is not offcially supported...
But if you have some limitations.
FORM user_command USING fuw_ucomm LIKE sy-ucomm
fuw_selfield TYPE slis_selfield.
FIELD-SYMBOLS: <lfs_grid> type ref to cl_gui_alv_grid,
<lfs_row> type LVC_S_ROW.
data: li_rows type lvc_t_row.
assign ('(SAPLSLVC_FULLSCREEN)GT_GRID-GRID') to <lfs_grid>.
check sy-subrc is initial.
call method <lfs_grid>->get_selected_rows
IMPORTING
et_index_rows = li_rows.
endform. "user_command -
How to read every line from a text file???
How can i read every line from my text file ("eka.txt")
now it only reads the first line and prints it out.
What is wrong with this?
import java.io.*;
import java.util.*;
class Testi{
public static void main(String []args)throws IOException {
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
File inputFile = new File ("eka.txt");
FileReader fis =new FileReader(inputFile);
BufferedReader bis = new BufferedReader(fis);
String test=bis.readLine();
String tmp= "";
while((bis.readLine().trim() != null)) {
int spacefound=0;
int l=test.indexOf(" ");
for(int i=0;i<test.length();i++){
char c=test.charAt(i);
if(c!=' ') tmp+=""+c;
if(c==' ' && (spacefound<1) && !(tmp.equals(""))){
tmp+=""+c;
spacefound++;
if(tmp.length()==l) {
System.out.println(tmp);
tmp="";
spacefound=0;
if(tmp.length()<l){
for(int i=0;i<=(l-tmp.length());i++)
tmp+=""+' ';
System.out.println(tmp);Try this code, Hope it servers your purpose.
import java.io.*;
import java.util.*;
class Testi {
public static void main(String []args)throws IOException {
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
File inputFile = new File ("Eka.txt");
FileReader fis =new FileReader(inputFile);
BufferedReader bis = new BufferedReader(fis);
String test=bis.readLine();
while(test != null) {
StringTokenizer st = new StringTokenizer(test," ");
while(st.hasMoreTokens())
System.out.println(st.nextToken());
test = bis.readLine();
}Sudha -
How to read some lines from a text file using java.
hi,
i m new to java and i want to read some lines from a text file based on some string occurrence in the file. This file to be read in steps.
we only want to read the file upto the first Occurrence of "TEXT" string.
How to do it ,,,
Kinldy give the code
Regards,
Sagar
this is the text file
dfgjdjj
sfjhjkd
ghjkdg
hjkdgh TEXT
ikeyt
ujt
jk
tyk TEXT
rukl
rHendawy wrote:
Since the word "TEXT" is formed of 4 letters, you would read the text file 4 bytes by four bytes. Wrong on two counts. First, the file may not be encoded 1 byte per character. It could be utf-16 in which case it would be two byte per character. Second, even if it were 1 byte per character, the string "Text" may not start on a 4 byte boundary.
Consider a FileInputStream object "fis" that points to your text file. use fis.read(byte[] array, int offset, int len) to read every four bytes. Convert the "TEXT" String into a byte array "TEXT".getBytes(), and yous the Arrays class to compare the equality of the read bytes with your "TEXT".getBytes()Wrong since it relies on my second point and will fail when fis.read(byte[] array, int offset, int len) does not read 4 bytes (as is no guaranteed to). Check the Javadoc. Also, the file may not be encoded with the default character encoding.
The problem is easily solved by reading a line at a time using a BufferedReader wrapping an InputStreamReader wrapping a FileInputStream and specifying the correct character encoding.
Edited by: sabre150 on Apr 29, 2009 2:13 PM -
How to read complete line displayed thru ALV report on double click? urgent
Hi guys,
An ALV report is displayed using 'REUSE_ALV_LIST_DISPLAY' and i have a requirement such that i have to read the line item on which double click is done.
I have to fetch the line item, field by field and not by characters. I have attached the function code and all using PF status.
Please tell me an approach as how to fetch the line item on which double click is done.
Points will be rewarded.
Regards
RahulHi ..
i did report with belnr , bukrs , Gjahr . which will call the transcation code FB03 displaing thedocument ...
please cut and paste the report it will work ..
REPORT zdemo_alvgrid .
TABLES: bkpf . " ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
TYPES: BEGIN OF t_ekko,
BUKRS like bkpf-BUKRS,
BELNR like bkpf-BELNR,
GJAHR like bkpf-GJAHR,
BLART like bkpf-BLART,
BLDAT like bkpf-BLDAT,
BUDAT like bkpf-BUDAT,
MONAT like bkpf-MONAT,
XBLNR like bkpf-XBLNR ,
* ebeln TYPE ekpo-ebeln,
* ebelp TYPE ekpo-ebelp,
* statu TYPE ekpo-statu,
* aedat TYPE ekpo-aedat,
* matnr TYPE ekpo-matnr,
* menge TYPE ekpo-menge,
* meins TYPE ekpo-meins,
* netpr TYPE ekpo-netpr,
* peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
*& Form BUILD_FIELDCATALOG
* Build Fieldcatalog for ALV Report
form build_fieldcatalog.
* There are a number of ways to create a fieldcat.
* For the purpose of this example i will build the fieldcatalog manualy
* by populating the internal table fields individually and then
* appending the rows. This method can be the most time consuming but can
* also allow you more control of the final product.
* Beware though, you need to ensure that all fields required are
* populated. When using some of functionality available via ALV, such as
* total. You may need to provide more information than if you were
* simply displaying the result
* I.e. Field type may be required in-order for
* the 'TOTAL' function to work.
fieldcatalog-fieldname = 'BUKRS'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
* fieldcatalog-do_sum = 'X'.
* fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BELNR'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'GJAHR'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BLART'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BLDAT'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BUDAT'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MONAT'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'XBLNR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
* fieldcatalog-do_sum = 'X'.
* fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
** fieldcatalog-fieldname = 'PEINH'.
** fieldcatalog-seltext_m = 'Price Unit'.
** fieldcatalog-col_pos = 8.
** append fieldcatalog to fieldcatalog.
* clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
*& Form BUILD_LAYOUT
* Build layout for ALV grid report
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
* gd_layout-totals_only = 'X'.
* gd_layout-f2code = 'DISP'. "Sets fcode for when double
* "click(press f2)
* gd_layout-zebra = 'X'.
* gd_layout-group_change_edit = 'X'.
* gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
*& Form DISPLAY_ALV_REPORT
* Display report using ALV grid
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
* i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
* it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
* is_variant = z_template
tables
t_outtab = it_ekko
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form DATA_RETRIEVAL
* Retrieve data form EKPO table and populate itab it_ekko
form data_retrieval.
select BUKRS
BELNR
GJAHR
BLART
BLDAT
BUDAT
MONAT
XBLNR up to 10 rows
from bkpf
into table it_ekko.
*select ebeln ebelp statu aedat matnr menge meins netpr peinh
* up to 10 rows
* from ekpo
* into table it_ekko.
endform. " DATA_RETRIEVAL
* Form TOP-OF-PAGE *
* ALV Report Header *
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
* Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
* Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
* i_logo = 'Z_LOGO'.
endform.
* FORM USER_COMMAND *
* --> R_UCOMM *
* --> RS_SELFIELD *
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* Check function code
CASE r_ucomm.
WHEN '&IC1'.
* Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'BELNR'.
* Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
* Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-bELNR .
SET PARAMETER ID 'MES' FIELD wa_ekko-bUKRS .
SET PARAMETER ID 'DES' FIELD wa_ekko-GJAHR .
* Sxecute transaction ME23N, and skip initial data entry screen
* CALL TRANSACTION 'FB03' AND SKIP first screen.
SUBMIT RFBUEB00
* WITH ALCUR ...
* WITH ARCHOBJ ...
* WITH ARCH_SEL ...
* WITH ARUSETYP ...
* WITH AUTBEXNO ...
* WITH AUTH_BUK ...
* WITH AUTH_LDR ...
* WITH BR_AWKEY ...
* WITH BR_AWSYS ...
* WITH BR_AWTYP ...
WITH BR_BELNR = wa_ekko-bELNR
* WITH BR_BLART ...
* WITH BR_BLDAT ...
* WITH BR_BUDAT ...
WITH BR_BUKRS = wa_ekko-bUKRS
* WITH BR_CPUDT ...
WITH BR_GJAHR = wa_ekko-GJAHR
* WITH BR_RLDNR ...
* WITH BR_SEQ ...
* WITH BR_USNAM ...
* WITH BR_XBLNR ...
* WITH EXCDT ...
* WITH P_STATS ...
* WITH STATISTK ...
* WITH STATUSD ...
* WITH STATUSL ...
* WITH STATUSM ...
* WITH STATUSS ...
* WITH STATUSV ...
* WITH TCODE ...
* WITH UNAME ...
* WITH XEMUCNV ...
* WITH XUSEAR ...
* WITH XUSEAS ...
* WITH XUSEDB
AND RETURN .
ENDIF.
ENDCASE.
ENDFORM.
*& Form BUILD_EVENTS
* Build events table
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
*& Form BUILD_PRINT_PARAMS
* Setup print parameters
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
*& Form END_OF_PAGE
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
*& Form END_OF_LIST
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform.
reward points if it is usefull ...
Girish -
How to read partcicular line from a txt file
in a text file let there be 50 lines
while reading the line if the line is having "name" as a string in that line then i have to store the next two consecutive lines in a string as array....
Similar way and so on......
How can we do this....You need a BufferedReader:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html
for example:try {
BufferedReader br = new BufferedReader(new FileReader("myfile.txt"));
String line;
while ( (line=br.readLine()) != null ) {
if (line.indexOf("name") != -1) {
// Store the next two lines.
// You will need to call br.readLine() again.
} catch (IOException x) {
x.printStackTrace();
} -
How to read a line of string?
Hi, I am very new to java programming. Can anyone show me a method of a simple way to read a line of characters into a string? I look over the internet but all seems awfully complicated like easyReader..etc which you have to import more other classes to make it to work. I just need it to be as simple as just to read a line into string.
Thank you...Hi, try this..
import java.io.*;
public class rt
public static void main(String[] args) throws IOException
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String s = r.readLine();
System.out.println(s);
}hope this helps,
mfg
bbm1277 -
How to read multiple lines from a command prompt?
I usually read from a command prompt like this:
String answer;
System.out.println("Please enter the required data");
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
answer = reader.readLine();
reader = null;
} catch (Exception e) {
System.out.println("There was an exception trying to read " + e);
answer = "";
This has worked fine for years when all I wanted was one line answers.
Now I am trying to prompt for multiple line answers. Is there a way to read into a string array rather than just a string? What class would I use for that?
Thanks a lot!The easiest approaches would be to read a line at a time until you've read enough lines, whether by a known fixed line count, or a token count, or by reading some sentinel toek, OR read a token at a time using Scanner.next() until you've determined you're done. Which one is more appropriate depends on your situation.
-
Could anyone tell me how to read 4 lines altogether and insert into table
Hi ,
I want to load the below data into table by using sql loader.
First 4 lines should insert in one single row in table and again it should from '01' load the next 4 lines in another row.
01suresh
02works
03in
04bankok
01kumar
02works
03in
04abudabi
01Raju
02works
03in
04france
Could you please give me some suggestion how i can accomplish it.
Thanks in advance.
Regards,
Vinouser1142030 wrote:
First 4 lines should insert in one single row in table and again it should from '01' load the next 4 lines in another row.Not a problem, use CONTINUEIF. Control file:
LOAD DATA
INFILE *
REPLACE
CONTINUEIF NEXT PRESERVE(1:2) != "01"
INTO TABLE continueif
TRAILING NULLCOLS
DUMMY FILLER POSITION(1:2),
COL1 TERMINATED BY '02',
COL2 TERMINATED BY '03',
COL3 TERMINATED BY '04',
COL4 TERMINATED BY '01'
BEGINDATA
01suresh
02works
03in
04bankok
01kumar
02works
03in
04abudabi
01Raju
02works
03in
04france Now:
SQL> create table continueif(
2 col1 varchar2(10),
3 col2 varchar2(10),
4 col3 varchar2(10),
5 col4 varchar2(10)
6 )
7 /
Table created.
SQL> host sqlldr scott@orcl/tiger control=c:\temp\continueif.ctl log=c:\temp\continueif.log
SQL> select * from continueif
2 /
COL1 COL2 COL3 COL4
suresh works in bankok
kumar works in abudabi
Raju works in france
3 rows selected.
SQL> SY. -
How to read last line from a .txt file?
Hello
I have a string: e.g. "my name is John"
and i wanna verify if this string is equal with the last line from a text file
for example, if in the txt file i have:
asdasd
sdgsdfgasd
asdfgadfgadf
sdgasdgsdf
my name is john
then it's OK.
but if i have
asdgsdfg
dsfhsdfhsd
sdgasdfg
sdgsdg
my name is Jdfgsdg
this is not correct
How should i do this?
Thanks:)Read from the beginning an discard all lines (if you have a small file), or use RandomAccessFile and scan from the end till you find the beginning of the last line.
Kaj -
How to read multiple lines from an external file to the Oracle data base
Hi Guys,
I have an external file which contains multiple lines and I want to read it to the data base .I have done it for the file if it contains one line.
Please guide me how to retrieve all the lines into the data base.And also tell me how Oracle will come to know the end of the line in the file
Thanks,
PrafullaHi,
try this
CREATE TABLE ab
a VARCHAR2(1 BYTE),
b VARCHAR2(2 BYTE),
c VARCHAR2(10 BYTE),
d VARCHAR2(11 BYTE)
ORGANIZATION EXTERNAL
( TYPE ORACLE_LOADER
DEFAULT DIRECTORY dir_name
ACCESS PARAMETERS
( records delimited by newline
fields (
a POSITION(*) CHAR(1),
b POSITION(*) CHAR(2 ),
c POSITION(*) CHAR(10 ),
d POSITION(*) CHAR(11 )
LOCATION (dir_name:'filename.txt')
REJECT LIMIT UNLIMITED
NOPARALLEL
NOMONITORING;
Regards,
Simma.... -
How to read a line from a file which contains 45000 characters?
Hi all,
Iam a receiving a .CSV file which contains n number of rows ,each row has a data seperated with delimiter.
These values based on delimiter it is seperated and certain validations are handled.
Iam using UTL_FILE.GET_LINE operator to read the value and store it in a variable which is declared as l_text VARCHAR2(30000).
when we receive a line which contains huge characters say 45000 then it throws an error(Unable to read the file).
Only on rare cases we used to receive these kind of files with huge size.
Kindly help to solve this issues.
Database details.
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
Hereby i have tried with long Raw data type but still same error unable to read the file.pls find the sample code below,
declare
l_text LONG RAW;
l_importTypeFile UTL_FILE.FILE_TYPE ;
begin
PKG_COMMON.PROC_FOPEN(g_Directory, P_FILENAME, 'RB',l_importTypeFile, p_error_cd, p_error_msg) ;
UTL_FILE.GET_RAW(l_ImportTypeFile,l_Text);
End;
Thanks in Advance
SivaHi Siva,
Are you trying to use data from this .csv file into your realtion tables. If yes and If you are using 11g Oracle database. I would suggest you create External Tables using the below query,
http://www.oracle.com/technetwork/issue-archive/2011/11-mar/o21nanda-312277.html
STEP1: You need a Directory where your SCHEMA has read/write access. Store the csv file in that directory.
STEP2: Create an EXTERNAL Table script. Please refer the above URL. Examples are for coma delimiter (,); replace it with your pipe (|) in the code
STEP: Once your external table is created you can simply create a relational table as below:
CREATE TABLE relation_table
AS
SELECT * FROM external_table;
Regards,
RaviR -
How to read long line from text file
Hi,
I just faced problem when reading a big text file.
BufferedReader br = new BufferedReader(new FileReader("D:\\afile.txt"));
String str;
int i;
while ((str = br.readLine())!=null)
i++;
//do some work here...
...This code throws exception:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap spaceSo I thought file line is very long. When I opened it in FAR it only displays no more than 4096 characters as a line.
Help me to read a text file that's line is very long?try,
$ java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xloggc:<file> log GC status to a file with time stamps
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xrunhprof[:help]|[:<option>=<value>, ...]
perform JVMPI heap, cpu, or monitor profiling
-Xdebug enable remote debugging
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)
-Xcheck:jni perform additional checks for JNI functions
The -X options are non-standard and subject to change without notice.
Maybe you are looking for
-
How do I find the header for an incoming email to locate sender's IP?
I need to identify the IP address for a person who is spoofing me so I can block them at my server.
-
I have an iPhone4. I thought it came with the QuickTime application but cannot find it currently installed in my phone. I received an email with an embedded QuickTime song how can I bypass the email and save the music to my device? There is no diffic
-
My phone refuses to dial. If i manually type in a number and press call it works but whenever i try to dial a number from my contacts / call log or number in a text message it does nothing as if i never pressed the button. I tried options then call a
-
Is importing a class the same as getDefinition("className") as Class ?
I was wondering is this the same: import HomePage; and then HomePage.currentPage = "videosPage"; == ? public static var HomePage:Class; and then HomePage = ApplicationDomain.currentDomain.getDefinition("HomePage") as Class; HomePage.currentPage = "vi
-
How can i use ipad to watch the movies in TC directly.
Just like the title.