Avoid removing backslashs from file path - backslash

I have a file path, as string variable:
MyPath="d:\Folder\File.txt,0"
From the beginning I have to say that I can't double the backslashes in this variable, because this variable is read from a text file and in that, it is so.
Now I'd need to get two variables from the Path variable: the path itself (in this case d:\Folder\File.txt) and the index (0, in this case). I wrote a few functions to do this, but each of them are removing the backslashes from the path, I get something like d:FolderFile.txt, which obviously isn't what I'd need.
There is any way to keep the backslashes in the variable?
Thanks in advance.

Related

TCL: file normalize gives unexpected output

I have the following line of code:
file normalize [string map {\\ /} $file]
The string map operation is to make the line work for paths containing backslashes instead of forward (as is the case in Windows)
For some values of $file (let's say it's "/path/to/my/file") I get output similar to:
/path/to/"/path/to/my/file/"
This doesn't happen for all paths but I'm unable to figure out what causes it. There are no symbolic links in the path.
Is there something I'm doing wrong, or is there an alternative to file normalize that I could try?
my tcl version is 8.5
UPDATE:
On further investigation I see that the string map is not making any difference. The output of file normalize itself is coming with that extra text before the desired text. Also, the extra text seems to be from a previous run of the code.
UPDATE 2: It was because of the quotation marks in the input to file normalize
Most likely the path has backslashes where it shouldn't have them.
% file normalize {"/path/to/some/file"}
/path/to/"/path/to/some/file"
% file normalize \"/path/to/some/file\"
/path/to/"/path/to/some/file"
Perhaps some pathname handling code escaped special characters for some reason and left the path in a mangled state.
I would try to keep the pathname pristine and when it needs to be changed for display or other processing, make a copy of it first.

Import huge data from CSV into Neo4j

When I try to import huge data into neo4j it gives following error:
there's a field starting with a quote and whereas it ends that quote there seems to be characters in that field after that ending quote. That isn't supported. This is what I read: 'Hello! I am trying to combine 2 variables to one variable. The variables are Public Folder Names and the ParentPath. Both can be found using Get-PublicFolder
Basically I want an array of Public Folders Path and Name so I will have an array like /Engineering/NewUsers
Below is my code
$parentpath = Get-PublicFolder -ResultSize Unlimited -Identity """ "'
It seems that there may be some information lacking from your question, especially about the data that is getting parsed, stack trace a.s.o.
Anyway, I think you can get around this by changing which character is treated as quote character. How are you calling the import tool and which version of Neo4j are you doing this on?
Try including argument --quote %, and I'm making this up by just using another character % as quote character. Would that help you?

Yii2 FileHelper::findFiles() does not work with an option

When I simply use
FileHelper::findFiles(realpath($config['sourcePath']));
It works.But when I try to pass some options to it,it does not work.Unfortunately,It does not give any error.
FileHelper::findFiles(realpath($config['sourcePath']),['only'=>['*.php']]);
Any idea why is it so?
The syntax should be .php and not *.php. It isn't very clear in the docs though. Here is the explanation for the trailing /:
For example, '/a/b' matches all file paths ending with '/a/b'; and '.svn/' matches directory paths ending with '.svn'
We can therefore deduce that .svn will match all files ending in .svn.

How to add certain search and replace pattern on filenames with specific strings

I have written a function, which does some search and replace on the file which I am editing. But for certain files (with some specific keyterms in the filename), I need to add some specific search and replace which is restricted to these files.
I need to know how to fix the following code:
function! Test()
" basic search and replace for all the files
%s/I'll /I will /ge
" if the filename starts with "blah-" the following additional search and replace needed otherwise not
if match(readfile(expand('%:t')),"^blah-")
%s/could'nt /could not /gec
endif
endfunc
And on calling the function :call Test() all these patterns will be executed. Hence, I do not need to worry about the specific instructions on certain file types.
Can anybody help me fixing this problem?
If there is no match -1 is returned from match(). Also, you probably don't need to call readfile() to check the filename. As such, change
if match(readfile(expand('%:t')),"^blah-")
...to...
if match(expand('%:t'), '^blah-') != -1
...and your blah-files (and only your blah-files) will have the extra substitution executed.

In Stata, how do I add variable labels from a separate csv file?

I have a set of csv files that are very simple to load into Stata using the -insheet- command. But they have very uninformative variable names. For each of these files, I also have a file of metadata consisting of two columns: the original (uninformative) variable names, and a description of what the variables actually mean. I'd like to use these metadata files to create variable labels, preferably without going through and typing up all the separate label commands or turning the metadata file into a dictionary for each file. It seems like there must be a quick way of loading the metadata file into Stata and looping through it to generate the label commands, but I don't know what it is. Any thoughts?
Ideally each line of the metadata is something like
varname1 "more interesting description"
in which case you can prefix each line with
label var
and then run the file as if it were a do-file using do. See the help for label. That is easy in a decent text editor, as for example searching for the start of each line and replacing it with label var (note the need for the space).
What could bite here includes:
You don't have double quotes " " as delimiters, in which case you need to insert them.
The extra information does not qualify as a variable label because it is more than 80 characters long. See help limits.
There are other ways to do this with Stata. You could write a program to read in the metadata and write out a do-file using file, but if this were my problem I would reach first for my text editor. (Most experienced Stata programmers use something else as well as doedit.)