Q: Perl search and replace in file containing Japanese characters
Hello Perl experts
I have a Unicode Text file (saved from Excel) and would like to replace the tabs in that file with commas. I am using the following code but it seems to be changing some of the Japanese characters in the file only in certain files. If needed I can attach the original file but was wondering if there is a better way to do this using Perl only.
open INF, "ST_20120829_102433_AB.txt" ;
open OUTF, ">outf.txt" ;
binmode INF;
binmode OUTF;
while (read (INF, $readbuff, 65535)) {
$readbuff =~ s/$t1/,/g ;
print OUTF $readbuff ;
close INF ;
close OUTF ;
Thanks
Arindam
Off topic. These are Java forums. Locking.
Similar Messages
-
RH 11: Search and replace in files: options are grayed out
Hello to all,
just wanted to replace a string in my RH Project. Using the Dialog "search and replace in files", the Option "ignore HTML-Tags" is grayed out.
Even if i create a new, empty Project: the same Problem.
Is this Option generally not available in RH11 or what is the Trigger to gray the Option out?
Sorry if I dont hit the English terminology used in RH, I'm using the German Version...
Regards,
JulianHi Julian. This sounds like you have the Advanced options displayed. try going back to the Basic options by clicking the double arrow icon in the top right hand corner:
-
How to upload file containing Japanese characters in AL11
Hi All,
I'm trying to modify a program that extracts a text file from local drive then upload the file to sap directory. The input text file contains Japanese characters. When I view the file created, it looks like the one below:
#º#®#~#^#ì#q ¼ÓÔ¼·Ï·º
#ì#ç#ß#q ÐÅÐÁÂÞº
The code that I am fixing is below:
open dataset pv_name for output in text mode encoding non-unicode
ignoring conversion errors.
open dataset pv_name for output in legacy text mode code page '8000' ignoring conversion errors.
*OPEN DATASET pv_name FOR OUTPUT IN TEXT MODE ENCODING UTF-8 WITH BYTE-ORDER MARK.
if sy-subrc = 0.
LOOP AT pt_input.
TRANSFER pt_input TO pv_name.
IF SY-SUBRC NE 0.
WRITE:/ 'Error writing file'(011), pv_name.
STOP.
ENDIF.
ENDLOOP.
endif.
Close dataset
CLOSE DATASET pv_name.
Any suggestions on how to resolve this one?
Thanks a lot in advance.I didnt said that this will resolve your errors. But using this is the same of ignoring comiler errors....
As you didnt said anything about codepages you're using no help is possible, you didnt mentioned if your SAP system is Unicode, Non-Unicode or even a MDMP system.
You need to figure out which codepage the file has on the presentation server and which codepage your SAP system is using. And it can be that no conversion is possible cause both systems do not have any character in common. -
In a file :
file.html
I want to change for example "hello" by "hi".
What can I do ?
ThanksYou'll have to read the file, one line at a time, and call the following method:
Returns a string with <b>oldStr</b> replaced by <b>newStr</b> as many times as indicated by the parameter <b>inst</b>.
public static String Substitute(String str1, String oldStr, String newStr, int inst) {
String tmp=str1;
int k=oldStr.length();
for (int i=1;i<=inst;i++) {
int j=tmp.indexOf(oldStr);
if (j<0) return tmp;
tmp=tmp.substring(0,j)+newStr+tmp.substring(j+k);
return tmp;
V.V. -
Search and replace for Unicode characters
Hello,
I have a function which searches and replaces characters on file. It works with ASCI sharacters, but not when the strings which needs to be replaced contains Unicode ('á', 'ā') etc. The source file is codding
utf8 .
$file = "file.txt"
$SearchReplace = @($file)
#Process files by performing a search and replace
foreach ($file in $SearchReplace)
#Select-Object -Skip 1 |
(Get-Content $file) |
Foreach-object { $_ -replace 'unicode_string' , ';' } |
out-file -encoding Unicode $file
How to get working the search (and replace) function with Unicode characters?
Thanks!No. it does not. I have verified that script does not recognize the diacritic
('á',
'ā') characters when at all the operations with the files I have specified encoding utf-8/Unicode. -
Search and replace strings in a file while ignoring substrings
Hi:
I have a java program that searches and replaces strings in a file. It makes a new copy of the file, searches for a string in the copy, replaces the string and renames the new copy to the original file, thereafter deleting the copy.
Now searching for "abcd", for eg works fine, but searching for "Topabcd" and replacing it doesnot work because there is a match for "abcd" in a different search scenario. How can I modify the code such that if "abcd" is already searched and replaced then it should not be searched for again or rather search for "abcd" as entire string and not if its a substring of another string.
In the below code output, all instances of "abcd" and the ones of "Topabcd" are replaced by ABCDEFG and TopABCDEF respectively, whereas according to the desired output, "abcd" should be replaced by ABCDEFG and "Topabcd" should be replaced by REPLACEMEFIRST.
try
String find_productstring = "abcd";
String replacement_productstring = "ABCDEFG";
compsXml = new FileReader(compsLoc);
compsConfigFile = new BufferedReader(compsXml);
File compsFile =new File("file.xml");
File compsNewFile =new File("file1.xml");
BufferedWriter out =new BufferedWriter(new FileWriter("file1.xml"));
while ((compsLine = compsConfigFile.readLine()) != null)
new_compsLine =compsLine.replaceFirst(find_productstring, replacement_productstring);
out.write(new_compsLine);
out.write("\n");
out.close();
compsConfigFile.close();
compsFile.delete();
compsNewFile.renameTo(compsFile);
catch (IOException e)
//since "Topabcd" contains "abcd", which is the search above and hence the string "Topabcd" is not replaced correctly
try
String find_producttopstring = "Topabcd";
String replacement_producttopstring = "REPLACEMEFIRST";
compsXml = new FileReader(compsLoc);
compsConfigFile = new BufferedReader(compsXml);
File compsFile =new File("file.xml");
File compsNewFile =new File("file1.xml");
BufferedWriter out =new BufferedWriter(new FileWriter("file1.xml"));
while ((compsLine = compsConfigFile.readLine()) != null)
new_compsLine =compsLine.replaceFirst(find_producttopstring, replacement_producttopstring);
out.write(new_compsLine);
out.write("\n");
out.close();
compsConfigFile.close();
compsFile.delete();
compsNewFile.renameTo(compsFile);
catch (IOException e)
}Thanks a lot!Hi:
I have a java program that searches and replaces
strings in a file. It makes a new copy of the file,
searches for a string in the copy, replaces the
string and renames the new copy to the original file,
thereafter deleting the copy.
Now searching for "abcd", for eg works fine, but
searching for "Topabcd" and replacing it doesnot work
because there is a match for "abcd" in a different
search scenario. How can I modify the code such that
if "abcd" is already searched and replaced then it
should not be searched for again or rather search for
"abcd" as entire string and not if its a substring of
another string.
In the below code output, all instances of "abcd" and
the ones of "Topabcd" are replaced by ABCDEFG and
TopABCDEF respectively, whereas according to the
desired output, "abcd" should be replaced by ABCDEFG
and "Topabcd" should be replaced by REPLACEMEFIRST.
try
String find_productstring = "abcd";
String replacement_productstring = "ABCDEFG";
compsXml = new FileReader(compsLoc);
compsConfigFile = new
BufferedReader(compsXml);
File compsFile =new File("file.xml");
File compsNewFile =new File("file1.xml");
BufferedWriter out =new BufferedWriter(new
FileWriter("file1.xml"));
while ((compsLine =
compsConfigFile.readLine()) != null)
new_compsLine
=compsLine.replaceFirst(find_productstring,
replacement_productstring);
out.write(new_compsLine);
out.write("\n");
out.close();
compsConfigFile.close();
compsFile.delete();
compsNewFile.renameTo(compsFile);
catch (IOException e)
//since "Topabcd" contains "abcd", which is
the search above and hence the string "Topabcd" is
not replaced correctly
try
String find_producttopstring = "Topabcd";
String replacement_producttopstring =
topstring = "REPLACEMEFIRST";
compsXml = new FileReader(compsLoc);
compsConfigFile = new
gFile = new BufferedReader(compsXml);
File compsFile =new File("file.xml");
File compsNewFile =new File("file1.xml");
BufferedWriter out =new BufferedWriter(new
dWriter(new FileWriter("file1.xml"));
while ((compsLine =
compsLine = compsConfigFile.readLine()) != null)
new_compsLine
new_compsLine
=compsLine.replaceFirst(find_producttopstring,
replacement_producttopstring);
out.write(new_compsLine);
out.write("\n");
out.close();
compsConfigFile.close();
compsFile.delete();
compsNewFile.renameTo(compsFile);
catch (IOException e)
Thanks a lot!I tried the matches(...) method but it doesnt seem to work.
while ((compsLine = compsConfigFile.readLine()) != null)
if(compsLine.matches(find_productstring))
System.out.println("Exact match is found for abcd");
new_compsLine =compsLine.replaceFirst(find_productstring, replacement_productstring);
out.write(new_compsLine);
out.write("\n");
else
System.out.println("Exact match is not found for abcd");
out.write(compsLine);
out.write("\n"); -
Bug in Multi-File Search and Replace in RH6?
I'm using the 6.0 trial, and one thing I want to be able to
do is to replace the variables I put in using JavaScript with the
new feature variables in 6.0. So, I went in to multi-file search
and replace, and searched for:
<script
language=JavaScript>document.write(varProduct)</script>
I copied this code directly from a topic, and pasted it into
the Search tool.
I don't even care whether I can successfully copy the code
from my new variable for use as the replacement text; I'd be happy
if the multi-file search would simply find all occurrences of my
original code so I don't miss any during conversion to 6.0.
It keeps coming up as not found, and this concerns me
greatly. Has anyone else experienced this? Is it a known bug? Does
anyone have a workaround?
Thanks!Hi robowriter
I'm assuming you are using the wondrous little applet known
as Multi-File Find and Replace.
Unfortunately, this little beastie is like a cat. It
frequently has a fussy tummy and loves to hork up furballs. Well,
not exactly. Really what it does is fail to properly handle
anything with a line break. So you need a tool that does do this.
Fortunately, one exists! It is called FAR (Find And Replace). Oddly
enough, it was also written by a fellow Microsoft Help MVP named
Rob Chandler. (Rob lives in Australia)
You can download a trial version of FAR from the FAR page.
Click here to visit
the FAR page
Cheers... Rick -
How to search and replace in an xml file using java
Hi all,
I am new to java and Xml Programming.
I have to search and replace a value Suresh with some other name in the below xml file.
Any help of code in java it is of great help,and its very urgent.
I am using java swings for generating two text boxes and a button but i am not able to search in the xml file thru the values that are entered into these text boxes.
Thanks in advance.
**XML File*
<?xml version="1.0" encoding="ISO-8859-1"?>
<student>
<stud_name>Suresh</stud_name>
<stud_age>40</stud_age>
</student>Also i am using SAX Parser in the java program
any help of code or any tutorials for sax parisng is very urgent please help me to resolve this problem
Edited by: Karthik84 on Aug 19, 2008 1:45 AM
Edited by: Karthik84 on Aug 19, 2008 3:15 AMUsing XPath to locate the elements you are after is very easy.
Try something like this:
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class BasicXMLReplaceWithDOM4J {
static String inputFile = "C:/student.xml";
static String outputFile = "C:/studentRenamed.xml";
public static void main(String[] args) throws Exception {
// Read xml and build a DOM document
Document doc = DocumentBuilderFactory.newInstance()
.newDocumentBuilder().parse(new InputSource(inputFile));
// Use XPath to find all nodes where student is named 'Suresh'
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes = (NodeList)xpath
.evaluate("//stud_name[text()='Suresh']", doc, XPathConstants.NODESET);
// Rename these nodes
for (int idx = 0; idx < nodes.getLength(); idx++) {
nodes.item(idx).setTextContent("Suresh-Renamed");
// Write the DOM document to the file
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.transform(new DOMSource(doc), new StreamResult(new File(outputFile)));
}- Roy -
Batch File Search and Replace a String
I've written a batch file to handle the copying of files. I'm trying to reduce the number of parameters that I pass to the batch file.
I want the batch file to perform a string replace on the directory path that is passed as a parameter to the batch file.
Here is how I run the batch file:
COPY_FILE.BAT C:\DATA\FTP_DATA\ACME\IN (I'm passing directory path "C:\DATA\FTP_DATA\ACME\IN" as parameter %1)
So my batch file will copy a file to the directory path represented by parameter %1.
But then I want the file copied to a second directory. I want the batch file to replace string "FTP_DATA" in the directory path with string "FTP_DATA\ARCHIVE"
I know I could pass this path as a second parameter, but I want to limit the number of parameters so figured I could have the batch file perform a search and replace on string "FTP_DATA".
After searching the internet, I thought I found the answer by using the following command in the batch file:
set ARCHIVE_PATH=%1:FTP_DATA=FTP_DATA\ARCHIVE
But it doesn't perform a search and replace. It just appends to the directory path with the following result:
C:\DATA\FTP_DATA\ACME\IN:FTP_DATA=FTP_DATA\ARCHIVE
What I want is the this:
C:\DATA\FTP_DATA\ARCHIVE\ACME\IN
Any suggestions?Your syntax is not correct. Example:
@echo off
setlocal enableextensions
set ARCHIVE_PATH=C:\DATA\FTP_DATA\ACME\IN
echo %ARCHIVE_PATH%
set ARCHIVE_PATH=%ARCHIVE_PATH:FTP_DATA=FTP_DATA\ARCHIVE%
echo %ARCHIVE_PATH%
endlocal
-- Bill Stewart [Bill_Stewart] -
Can i search and replace in the itunes library database file?
Hi --
I need to update the file location in the itunes database for a few thousand songs. These songs are just part of my full collection. A few hundred of these songs are referenced in playlists. Rebuilding the libarary, consolidating the library, adding the new folder to library -- none of these suggested solutions to similar problems will work for me. (My collection is too large for one drive and is spread over several drives, and I have many playlists with hundreds of songs, and the playlists would be ruined with any of these approaches.)
I thought I had an easy solution by doing a search and replace in "itunes library.xml," replacing the old file path with the new one. But then I learned (as you probably already know) that the real information is stored in "itunes library," and the xml file is just a downstream copy of that information. All my edits were overwritten as soon as I opened itunes.
The solution to my problem is completely straight-forward if I can just do a search and replace in "itunes libray." Is it possible to edit that file directly? The only database program I have is MS Access, on windows, and it couldn't open the file.
Thanks very much
- MarkHow to Move Your Music to a New Computer.
-
Multiple file search and replace
Does anyone know if it is possible to do search / replaces in script, text etc over multiple files? If not, is there any 3rd party software available to do it?
I have hundreds of files I have to make the same change in and just wanted to find out before I have to do the mind-numbing process of going through them all.
Any help will be greatly appreciated!Depending upon what type of files and what kind of changes you need to make, sure you can. You can do a google search for 'binary search and replace'; here's one of the first results, which searches for and replaces strings in multiple text and/or binary files:
http://gnuwin32.sourceforge.net/packages/gsar.htm -
Search and replace in Muse files
I have a lot of links to my own files in a given web page.
I will be relocating the files and want to know if I can run a search and replace the links with their new urls on the Muse files
I do not want to be manually replacing each link using the Muse add link button. That will take forever.
I will be using a separate search and replace program not anything within Muse
Clear?Hi J KIrby,
You have the option of 'Find and Replace' in Muse under 'Edit' menu option.
Also, please refer to our release notes page to see what other features have been added to muse in the last update - Release notes | Adobe Muse CC
- Abhishek Maurya -
HTML character entities problem in saved regex search and replace query
I have a many search and replace regular expression queries (.dwr files) that I have saved. I have a problem specifically with saved queries that contain HTML entities such as "& nbsp ; " or "& shy ;" (spaces added otherwise code doesn't render in browser). For example if I use the following search:
([\d]{3}& shy ;[\d]{3}& shy ;[\d]{4}|[\d]{3}& nbsp ;[\d]{3}& nbsp ;[\d]{4})
(which searches for numbers in the 888-555-1234 or 888 555 1234 formats)
This will work fine if I manually enter it into the search text area. However if I save it to file and reload it, it will no longer work because the ­ and characters are now displayed as " " (space) and "-"(shy) rendering the saved query useless as it's no longer searching for the code. I have some fairly long and complex queries and this is becoming a problem.
Thanks for any help.
I'm currently using Dreaweaver CS4 at home and CS5.5 at work.Thanks for your reply Kenneth, but that is not what I'm trying to accomplish. I'm looking for the HTML entities that exist in the source code which are & shy ; and & nbsp ; (without the spaces). As I mentioned above, if I enter them manually in the search box, I will get the corrrect results. If I save the search and then reload it, the special characters are no longer in HTML and the search is now useless.
Just for example again
In an open document in code view insert a number in the format (without the spaces): 888& nbsp;888& nbsp ;8888
Open a search dialog box and enter (without the spaces): [\d]{3}& nbsp ;[\d]{3}& nbsp ;[\d]{4}
The search will find that entry.
Save search as phone.dwr for example. Then load it and try the search again. It won't work because upon loading the search Dreamweaver replaces the HTML code which was saved with the rendered HTML. So now the search shows up as: [\d]{3} [\d]{3} [\d]{4} which will not find the string with hard coded non-breaking spaces that I'm looking for.
Basically I want to be able to save a search query for reuse. When I load a search query, I want it to be exactly what I saved, not something that DW has rendered (that doesn't work). -
Apologies for what is no doubt a simple question - I'm trying to help out IT and I'm not a programmer, although maybe one day...
Anyway, I'm going to need to read a text file, and search for a string in that text file and replace it. I see "replace" as a function but I'm not familiar with how to use it. Poking around I found <cffile action=append> and used that to add a line to a text document. (Just a notepad .txt)
Ultimately I'll need to unzip a folder, search and replace the string in a specific file in there, and then re-zip the file, but we'll get to that later. I managed to unzip a folder already, that's easy enough. Putting it all together is my current challenge.
I'm using ColdFusion Builder 2.0
Thanks for any help you guys can give.file.txt: Contains several lines that all say "All Work And No Play Makes Jack A Dull Boy".
<cffile action="read" file="C:\file.txt" variable="myFile">
<cfset myFile = Replace(myFile,"Dull","Bored","all")>
<cffile action="write" file="C:\file.txt" output="#myFile#" addnewline="no" fixnewline="no">
<cffile action="read" file="C:\file.txt" variable="myNewFile">
<cfoutput>#myNewFile#</cfoutput>
^_^ -
GREP: date/time search and replace
Hi everybody,
I frequently import XML files to InDesign. The XML structure always contains the following information among others:
start date
start time
end date
end time
For example, it looks like this:
21.08.2013
09:00
25.08.2013
18:00
Now I need to re-arrange these fields in one row, just like this:
21.08.2013, 09:00 - 25.08.2013, 18:00
I already found out how to do this via GREP, but I need to go one step further:
If "start date" and "end date" are the same (for example both are "21.08.2013"), I would like to skip the "end date" in the output. It should look like this:
21.08.2013, 09:00 - 18:00
Is there a way to do this via GREP?
Thanks in advance!This will do it
Trevor
// By Trevor http://forums.adobe.com/thread/1261365?tstart=0
app.doScript("formatDates ()", ScriptLanguage.javascript, undefined, UndoModes.ENTIRE_SCRIPT, "GREP: date/time search and replace");
function formatDates ()
app.findGrepPreferences = app.changeGrepPreferences = null;
app.findGrepPreferences.findWhat = "\\d\\d\.\\d\\d\.\\d\\d\\d\\d\r\\d\\d:\\d\\d\r\\d\\d\.\\d\\d\.\\d\\d\\d\\d\r(?=\\d\\d:\\d\\d\r)";
var doc = app.activeDocument,
dateFinds = doc.findGrep(),
l = dateFinds.length, dates;
while (l--)
app.findGrepPreferences.findWhat = "(\\d\\d\.\\d\\d\.\\d\\d\\d\\d)";
dates = dateFinds[l].findGrep();
app.findGrepPreferences.findWhat = "(\\d\\d\.\\d\\d\.\\d\\d\\d\\d)\r(\\d\\d:\\d\\d)\r(\\d\\d\.\\d\\d\.\\d\\d\\d\\d)\r";
if (dates[0].contents == dates[1].contents) app.changeGrepPreferences.changeTo = "$1 $2 - ";
else app.changeGrepPreferences.changeTo = "$1 $2 - $3 ";
dateFinds[l].changeGrep();
Maybe you are looking for
-
I purchased a mac book pro in oct 2011, I restarted it after updating and it,s stuck on apple symbol, I hit command R while restarting and clicked on disk utility. It says disk can't be repaired, apple wants $249 to tell me what's wrong. Please help!
-
Hi, I have a problem with my gallery. So I have miniphoto(29 photo)... and I wanna make when I click miniphoto then show my bigphoto... something like this... 29 mini photo and scrollbar... Please help and how I cen get my video on you tube to my si
-
Error in dbms_output with bind variables ?
Can you help me about the different results in "SQL Developer" and "SQL*Plus" wiht dbms_output package? I execute next code:var v1 number; var v2 varchar2(20); set serveroutput on begin :v1 := 10; :v2 := 'Hello'; dbms_output.put_line('In first block:
-
Elvis with X11 support - PKGBUILD
Building the other 2 elvis PKGBUILDs in the AUR is broken, and they are without X11 support. I'm wondering if I should submit this PKGBUILD, which compiles and works fine, and includes X11 and x86_64 support and the help documentation, to the AUR. #
-
I had a tech support person tell me to reset safari and I did it too quick... I didn't see it would take out my saved names/passwords. What(/where) file are these in that I can restore with time machine? Thanks