Edit text in file(UTF16) - vb.net

I want replace 1 word in text file (file format is not .txt)
file Unicode is (UTF16)
few text example:
I D = " f f 0 3 4 a 9 2 - d d 9 f - 4 3 7 4 - a 8 a d - f 5 5 4 0 0 2 a 4 1 9 b " I S S U E _ D A T E = " 2 0 1 7 - 0 2 - 1 6 T 1 7 : 2 9 : 1 8 . 9 7 0 2 2 9 4 Z " S E Q U E N C E = " 0 " M A N A G I N G _ A P P L I C A T I O N _ T O K E N = " " > < L I C E N S E P U B L I C _ I D = " 3 A A - U J F - 8 K P " U S E R N A M E = " N d a G 6 Z T w u v I X Z B i t h 8 g o d d Q x E r x 0 + O g M c t 0 2 3 f X K O E w = " P A S S W O R D = " F 9 b n 6 b v w l f I 5 Z A 2 t h M h 9 d d s x Q L w = " T Y P E = " T R I A L " F L A G S = " 4 " D I S P L A Y _ N A M E =
I want change T R I A L to other word

It's not too hard to modify your text file. Use the IO class to assign it to a text file, then use String.Replace(oldValue As String, newValue As String) to change your string. Then use IO again to save the string to the file. This should work so long as your file isn't open and being used in another program - regardless of file extensions.
An example, to help you, could be something such as this:
Dim myFileContents as String = IO.File.ReadAllText("Path\To\My\File\File.extension")
myFileContents = myFileContents.Replace("T R I A L", "Some other word")
IO.File.WriteAllText("Path\To\My\File\File.extension", myFileContents)
Modify the contents to suit your situation - however, this is only a basic implementation. Additionally, it is important to note that String.Replace() will change all occurrences of your word to the new word.

Related

select rows where only 1 of boolean columns is true

I have a table with the following format:
CREATE TABLE segments(id INT, walk BOOLEAN, taxi BOOLEAN, bus BOOLEAN,
subway BOOLEAN, bike BOOLEAN);
INSERT INTO segments (id, walk, taxi, bus, subway, bike)
VALUES (0,false,false,false,false,true),
(1,true,true,false,false,false),(2,true,false,false,false,false),
(3,true,false,true,false,false),(4,true,true,true,false,false),
(5,false,false,true,false,false),(6,true,true,false,false,false),
(7,true,false,false,false,false),(8,true,false,true,false,false),
(9,true,true,true,false,false),(10,true,false,true,false,false);
SELECT * FROM segments;
id walk taxi bus subway bike
0 f f f f t
1 t t f f f
2 t f f f f
3 t f t f f
4 t t t f f
5 f f t f f
6 t t f f f
7 t f f f f
8 t f t f f
9 t t t f f
10 t f t f f
But I want filter rows where only 1 of walk, taxi, bus, subway or bike it true, and no other.
Expected output:
id walk taxi bus subway bike
0 f f f f t
2 t f f f f
5 f f t f f
7 t f f f f
You can cast boolean as int in postgres:
SELECT *
from segments
where walk::int + taxi::int + bus::int + subway::int + bike::int = 1;
id
walk
taxi
bus
subway
bike
0
false
false
false
false
true
2
true
false
false
false
false
5
false
false
true
false
false
7
true
false
false
false
false
See db fiddle.
One way is to encode your booleans as bits, and then check that exactly 1 bit is set. Example:
select * from segments
where 1*walk::int+2*taxi::int+4*bus::int+8*subway::int+16*bike::int in (1,2,4,8,16);
Fiddle

VBA code - Group by matching columns using SQL

Input:
G F V S P M
10 1 1 1 1 a
10 1 1 1 1 b
10 1 2 1 1 c
10 2 1 1 1 c
11 1 1 1 1 d
11 1 1 2 1 d
11 1 1 2 1 e
Output should be:
G F V S P M
10 1 1 1 1 a, b
10 1 2 1 1 c
10 2 1 1 1 c
11 1 1 1 1 d, e
11 1 1 2 1 d, e
Public Function Test()
Dim sqlCON As New ADODB.Connection
Dim sqlREC As New ADODB.Recordset
Dim sqlSTR As String
Dim sqlSTR2 As String
Dim newWB As Workbook
Set newWB = ActiveWorkbook
With sqlCON
.Provider = "Microsoft.ACE.OLEDB.12.0;"
.ConnectionString = "Data Source='" & newWB.FullName & "';Extended Properties=""Excel 12.0 Xml;HDR=Yes;IMEX=1"";"
.Open
End With
sqlSTR = "SELECT G, F, V, S, P, M " & _
"FROM [Sheet1$];"
Set sqlREC = sqlCON.Execute(sqlSTR)
If sqlREC.BOF = False And sqlREC.EOF = False Then
getAD = sqlREC.GetRows
Else
getAD = Empty
End If
Set sqlREC = Nothing
sqlCON.Close
In the SELECT section of the code, I have already tried FOR XML PATH, STRING_AGG and GROUP_CONCAT, but had no success, it seems these functions are not supported in VBA.
The "ID" of the row is a combination of all the columns, where the leading column is V, for each V (combined with the other columns) we have a combination of M.
Does someone have a clue on how I can get the desired output?

Is there a limit on the number of operations VBA can perform?

Inspired by a puzzle I saw online , and since I'm a VBA newbie, I thought it might be an interesting exercise to help me learn how to use For loops by making a brute force method to search for solutions to it.
This led to creating a monstrosity that takes ages to partially run and actually won't fully run at all.
All the code is meant to do is print 3 columns of valid combinations
Private Sub CommandButton1_Click()
Dim j As Long
Dim abc As String
Dim def As String
Dim ghi As String
j = 1
For a = 1 To 9
For b = 1 To 9
For c = 1 To 9
For d = 1 To 9
For e = 1 To 9
For f = 1 To 9
For g = 1 To 9
For h = 1 To 9
For i = 1 To 9
'Line breaks included for ease of reading
If a = b Or a = c Or a = d Or a = e Or a = f Or a = g Or a = h Or a = i
Or b = c Or b = d Or b = e Or b = f Or b = g Or b = h Or b = i
Or c = d Or c = e Or c = f Or c = g Or c = h Or c = i
Or d = e Or d = f Or d = g Or d = h Or d = i
Or e = f Or e = g Or e = h Or e = i
Or f = g Or f = h Or f = i
Or g = h Or g = i
Or h = i Then
Else
abc = a & b & c
def = d & e & f
ghi = g & h & i
ThisWorkbook.Sheets("Sheet1").Cells(j, 1).Value = abc
ThisWorkbook.Sheets("Sheet1").Cells(j, 2).Value = def
ThisWorkbook.Sheets("Sheet1").Cells(j, 3).Value = ghi
j = j + 1
End If
Next i
Next h
Next g
Next f
Next e
Next d
Next c
Next b
Next a
End Sub
This obviously involves lots of simple operations, and results in variously (Not Responding) messages or it just doesn't run. Was it possible to tell before clicking "Go" that that would be the case?
My job has me working on, and adding to, spread sheets that perform lots of operations on other spread sheets with conceivably hundreds of thousands of data items in each. Continuing to add functionality to these files may or may not be sustainable, I need to know how to tell before I sink time into further development.
Is there a hard limit to what can be done with VBA in terms of volumes/numbers of operations? Is there a tool that will estimate the viability of a macro actually running to completion? A heuristic commonly employed in industry?
Basically, what methods or tools exist to inform as to whether the demands of a macro or series of macros will exceed available memory?
Thanks
You should attempt to do a tiny bit of maths before you begin.
Your code generates all the permutations of 9 thing taken 9 at a time. Before you begin, you know this this will fill 362880 rows; so the code should work.
A separate issue is how much time will it take, and is this the most efficient method .
Not an answer, but can it be tackled by just looping the numbers? Something along these lines, is checking the 1st char against the rest
Dim l As Long
Dim i As Integer
For l = 11111111 To 99999999
For i = 2 To 8
DoEvents
If (Mid(l, i, 1) <> Mid(l, 1, 1)) Then
Debug.Print l
End If
Next i
Next l

Octave while/for statement -- what's wrong in a code?

This is my Octave code
for K= 1:10
while ( p < 1 )
ceil(log2(K)) + 1/(1-(1-p)^K) %function
p = p + sens;
K
endwhile;
endfor
K
and here is an output:
ans = 10.000
K = 1
ans = 5.0000
K = 1
ans = 3.3333
K = 1
ans = 2.5000
K = 1
ans = 2
K = 1
ans = 1.6667
K = 1
ans = 1.4286
K = 1
ans = 1.2500
K = 1
ans = 1.1111
K = 1
ans = 1
K = 1
K = 10
So, as you can see -- in inner while statement value of K is fixed to 1. What I am supposed to do to vary this value between 1 and 10. Why it is not working? I have no idea why this inner while statement is proceed only once.
ANSWER: There should be p= initial_value after for K=...
There should be p= initial_value after for K=...
That is, like this:
for K = 1:10
p = somevalue;
while ( p < 1 )
...

vba: storing a long string in a variable with special characters

i need to set a string equal to this in vba. how do i do it?
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="958.69"
height="592.78998"
id="svg2275"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="Map of USA with state names.svg"
sodipodi:docbase="C:\temp\webdesign"
inkscape:output_extension="org.inkscape.output.svg.inkscape"
onload='Init(evt)'>
<metadata
id="metadata2625">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<script type="text/ecmascript"><![CDATA[
var SVGDocument = null;
var SVGRoot = null;
var SVGViewBox = null;
var svgns = 'http://www.w3.org/2000/svg';
var xlinkns = 'http://www.w3.org/1999/xlink';
var toolTip = null;
var TrueCoords = null;
var tipBox = null;
var tipText = null;
var tipTitle = null;
var tipDesc = null;
var lastElement = null;
var titleText = '';
var titleDesc = '';
function Init(evt)
{
SVGDocument = evt.target.ownerDocument;
SVGRoot = document.documentElement;
TrueCoords = SVGRoot.createSVGPoint();
toolTip = SVGDocument.getElementById('ToolTip');
tipBox = SVGDocument.getElementById('tipbox');
tipText = SVGDocument.getElementById('tipText');
tipTitle = SVGDocument.getElementById('tipTitle');
tipDesc = SVGDocument.getElementById('tipDesc');
};
function GetTrueCoords(evt)
{
// find the current zoom level and pan setting, and adjust the reported
// mouse position accordingly
var newScale = SVGRoot.currentScale;
var translation = SVGRoot.currentTranslate;
TrueCoords.x = (evt.clientX - translation.x)/newScale;
TrueCoords.y = (evt.clientY - translation.y)/newScale;
};
function ShowTooltip(evt, turnOn)
{
try
{
if (!evt || !turnOn)
{
toolTip.setAttributeNS(null, 'display', 'none');
}
else
{
var tipScale = 1/SVGRoot.currentScale;
var textWidth = 0;
var tspanWidth = 0;
var boxHeight = 20;
tipBox.setAttributeNS(null, 'transform', 'scale(' + tipScale + ',' + tipScale + ')' );
tipText.setAttributeNS(null, 'transform', 'scale(' + tipScale + ',' + tipScale + ')' );
var targetElement = evt.target;
if ( lastElement != targetElement )
{
var targetTitle = targetElement.getElementsByTagName('title').item(0);
if ( targetTitle )
{
titleText = targetTitle.firstChild.nodeValue;
tipTitle.firstChild.nodeValue = titleText;
}
var targetDesc = targetElement.getElementsByTagName('desc').item(0);
if ( targetDesc )
{
titleDesc = targetDesc.firstChild.nodeValue;
tipDesc.firstChild.nodeValue = titleDesc;
}
}
var xPos = TrueCoords.x + (10 * tipScale);
var yPos = TrueCoords.y + (10 * tipScale);
//return rectangle around object as SVGRect object
var outline = tipText.getBBox();
tipBox.setAttributeNS(null, 'width', Number(outline.width) + 10);
tipBox.setAttributeNS(null, 'height', Number(outline.height) + 10);
toolTip.setAttributeNS(null, 'transform', 'translate(' + xPos + ',' + yPos + ')');
toolTip.setAttributeNS(null, 'display', 'inline');
}
}
catch(er){}
};
]]></script>
<defs
id="defs2623">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 296.39499 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="958.69 : 296.39499 : 1"
inkscape:persp3d-origin="479.345 : 197.59666 : 1"
id="perspective364" />
</defs>
<sodipodi:namedview
inkscape:window-height="721"
inkscape:window-width="1024"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base"
inkscape:zoom="5.6568542"
inkscape:cx="182.21001"
inkscape:cy="-2.904429"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:current-layer="Frames"
showgrid="false"
inkscape:showpageshadow="false"
showborder="true"
borderlayer="true" />
<rect
width="959.62299"
height="595.63739"
x="-0.40383524"
y="-1.2939188"
id="water"
style="fill:#9ec7f3" />
<path
style="fill:#f7d3aa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 923.03026,37.975518 C 922.57184,38.995849 921.76084,41.697403 921.76084,44.352463 C 921.76084,47.130382 919.49185,46.324054 921.76084,48.603761 C 922.79254,49.640303 925.33008,47.328371 926.83847,47.328371 C 928.64472,47.328371 928.45237,51.223763 930.22354,51.579668 C 932.37666,52.012321 934.08737,52.522241 936.14743,52.004798 C 938.36058,51.448909 939.8978,50.502312 942.49447,51.154539 C 943.89657,51.506717 946.44388,48.461872 947.14893,47.753502 C 949.30188,45.590391 946.8075,50.401063 946.7258,50.729408 C 946.0737,53.350095 949.5805,52.429926 951.38029,52.429926 C 954.13433,52.429926 955.03028,50.940072 955.61163,48.603761 C 955.78273,47.916101 952.46128,44.82413 952.22655,44.352463 C 951.88695,43.670052 955.05553,42.433288 956.45789,41.376556 C 959.00459,39.457537 958.11054,38.360573 956.88104,37.125259 C 955.02965,35.26515 952.06131,38.141523 950.95714,39.250906 C 949.94504,40.267774 946.8031,41.463423 945.45641,41.801685 C 943.67466,42.24922 941.73037,44.09862 940.37878,44.777594 C 938.61378,45.664254 936.79892,46.420756 934.87803,46.903242 C 933.25123,47.311861 930.50953,44.639791 929.80042,43.927334 C 928.30508,42.424964 926.15309,43.238719 924.7228,41.801685 C 923.48412,40.557171 928.92137,37.975518 923.03026,37.975518 z"
id="path2688" />
<path
style="fill:#f7d3aa;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 932.45066,120.20861 C 930.56646,122.10171 935.15436,115.51342 935.80065,112.9161 C 936.52536,110.00362 937.67175,108.72666 939.15063,106.74551 C 940.64215,104.74745 940.82562,100.846 940.82562,98.33109 C 940.82562,94.697237 941.40826,97.831106 942.11259,95.000584 C 942.7806,92.315942 941.7297,88.409776 943.58217,87.944477 C 946.31731,87.257463 949.87769,86.619091 953.54955,83.492046 C 957.14099,80.433488 956.23335,75.558206 959.25049,72.526837 C 962.75189,69.00893 959.2677,69.09194 960.36716,64.673369 C 961.11108,61.683657 959.77892,57.791585 960.36715,54.576053 C 960.92452,51.529335 958.08102,54.747152 955.74777,54.747152 C 952.95531,54.747152 954.38524,49.767421 952.12739,54.304389 C 950.71186,57.148825 948.18573,56.79432 945.85059,57.380865 C 944.22798,57.788431 941.05298,57.003598 939.15063,57.48143 C 936.94013,58.03666 936.27191,56.669364 933.72007,57.310332 C 930.25974,58.179495 930.66732,61.846501 929.98207,64.230607 C 929.29484,66.621592 924.71311,76.29826 926.47935,71.948243 C 928.45325,67.086805 924.8791,75.999318 926.84982,75.603312 C 929.51337,75.068093 934.29834,71.947646 937.07006,71.251447 C 938.8483,70.804793 941.9546,69.007602 943.78757,69.007602 C 946.05933,69.007602 937.01097,73.216374 935.64791,75.042351 C 933.89748,77.387265 932.85005,78.22614 930.48775,78.815618 C 927.67299,79.518007 930.51373,85.599379 927.5609,79.665878 C 926.27211,77.076125 925.69324,81.579246 924.07573,83.746077 C 922.03935,86.47405 923.3452,88.967737 920.72574,91.599545 C 917.87719,94.461523 918.61592,94.156215 918.49243,94.404355 C 916.99477,97.4138 915.70079,97.773488 915.70079,101.69687 C 915.70079,105.56604 916.81744,105.88691 916.81744,109.55032 C 916.81744,113.11165 916.61142,114.95296 918.49243,116.84284 C 920.32234,118.68138 922.63295,114.98367 924.88691,115.54981 C 926.91033,116.05805 932.04066,120.04384 935.24233,121.33052"
id="path2715"
sodipodi:nodetypes="csssssssssssssssssssssssssssssc" />
<g
transform="matrix(1.0043294,0,0,1.0090644,-19.932863,-136.40509)"
id="States">
<path
d="M 242.96145,653.59282 L 244.83646,650.1553 L 247.02397,649.8428 L 247.33647,650.62405 L 245.30521,653.59282 L 242.96145,653.59282 z M 252.80525,649.99905 L 258.74278,652.49906 L 260.77404,652.18656 L 262.33654,648.43654 L 261.71154,645.15528 L 257.64902,644.68653 L 253.74275,646.40528 L 252.80525,649.99905 z M 282.49289,659.6866 L 286.08665,664.99912 L 288.43041,664.68662 L 289.52417,664.21787 L 290.93042,665.46787 L 294.52419,665.31162 L 295.4617,663.90537 L 292.64918,662.18661 L 290.77417,658.59284 L 288.74291,655.15533 L 283.11789,657.96784 L 282.49289,659.6866 z M 302.02423,668.28039 L 303.27423,666.40538 L 307.8055,667.34288 L 308.43051,666.87413 L 314.36803,667.49913 L 314.05553,668.74914 L 311.55552,670.15539 L 307.33675,669.84289 L 302.02423,668.28039 z M 307.1805,673.28041 L 309.05551,677.03043 L 312.02427,675.93667 L 312.33677,674.37416 L 310.77427,672.3429 L 307.1805,672.0304 L 307.1805,673.28041 z M 313.89928,672.18665 L 316.08679,669.37414 L 320.61806,671.7179 L 324.83683,672.81166 L 329.0556,675.46792 L 329.0556,677.34293 L 325.61809,679.06169 L 320.93056,679.99919 L 318.5868,678.59293 L 313.89928,672.18665 z M 329.99311,687.18672 L 331.55561,685.93672 L 334.83688,687.49923 L 342.18066,690.93674 L 345.46193,692.968 L 347.02443,695.31176 L 348.89944,699.53053 L 352.80571,702.03054 L 352.49321,703.28055 L 348.74319,706.40556 L 344.68067,707.81182 L 343.27442,707.18682 L 340.30565,708.90557 L 337.96189,712.03059 L 335.77438,714.8431 L 334.05562,714.68685 L 330.61811,712.18684 L 330.30561,707.81182 L 330.93061,705.46806 L 329.3681,699.99928 L 327.33684,698.28052 L 327.18059,695.78051 L 329.3681,694.84301 L 331.39936,691.87425 L 331.86811,690.93674 L 330.30561,689.21798 L 329.99311,687.18672 z"
id="HI"
style="fill:#ffffd0" onmousemove=' GetTrueCoords(evt); ShowTooltip(evt, true)' onmouseout='ShowTooltip(evt, false)' >
<title>first name, last name</title>
</path>
<path
d="M 170.46112,590.15502 L 170.14862,672.65541 L 171.71112,673.59291 L 174.67989,673.74916 L 176.08614,672.65541 L 178.58615,672.65541 L 178.74241,675.46792 L 185.46119,682.03045 L 185.92994,684.53046 L 189.2112,682.65545 L 189.83621,682.4992 L 190.14871,679.53044 L 191.55496,677.96793 L 192.64872,677.81168 L 194.52373,676.40542 L 197.49249,678.43668 L 198.1175,681.2492 L 199.9925,682.34295 L 201.08626,684.68671 L 204.83628,686.40547 L 208.11754,692.18675 L 210.7738,695.93676 L 212.96131,698.59303 L 214.36757,702.18679 L 219.21134,703.90555 L 224.21137,705.93681 L 225.14887,710.15558 L 225.61762,713.12434 L 224.68012,716.40561 L 222.96136,718.59312 L 221.39885,717.81187 L 219.9926,714.8431 L 217.33633,713.43685 L 215.61758,712.34309 L 214.83632,713.12434 L 216.24258,715.78061 L 216.39883,719.37437 L 215.30507,719.84312 L 213.43007,717.96812 L 211.39881,716.71811 L 211.86756,718.28062 L 213.11756,719.99938 L 212.33631,720.78063 C 212.33631,720.78063 211.55506,720.46813 211.08631,719.84312 C 210.61755,719.21812 209.05505,716.56186 209.05505,716.56186 L 208.11754,714.37435 C 208.11754,714.37435 207.80504,715.62436 207.18004,715.31185 C 206.55503,714.99935 205.93003,713.9056 205.93003,713.9056 L 207.64879,712.03059 L 206.24253,710.62433 L 206.24253,705.78056 L 205.46128,705.78056 L 204.68003,709.06182 L 203.58627,709.53058 L 202.64877,705.93681 L 202.02376,702.34304 L 201.24251,701.87429 L 201.55501,707.34307 L 201.55501,708.43682 L 200.14875,707.18682 L 196.71124,701.40554 L 194.67998,700.93679 L 194.05498,697.34302 L 192.49247,694.53051 L 190.92996,693.43675 L 190.92996,691.24924 L 192.96122,689.99924 L 192.49247,689.68674 L 189.99246,690.31174 L 186.71119,687.96798 L 184.21118,685.15546 L 179.52366,682.65545 L 175.61739,680.15544 L 176.8674,677.03043 L 176.8674,675.46792 L 175.14864,677.03043 L 172.33613,678.12418 L 168.74236,677.03043 L 163.27358,674.68667 L 157.96106,674.68667 L 157.33606,675.15542 L 151.08603,671.4054 L 149.05477,671.0929 L 146.39851,665.46787 L 142.96099,665.78037 L 139.52347,667.18663 L 139.99223,671.56165 L 141.08598,668.74914 L 142.02349,669.06164 L 140.61723,673.28041 L 143.74224,670.62415 L 144.36725,672.18665 L 140.61723,676.40542 L 139.36722,676.09292 L 138.89847,674.21791 L 137.64847,673.43666 L 136.39846,674.53042 L 133.7422,672.81166 L 130.77343,674.84292 L 129.05468,676.87418 L 125.77341,678.90544 L 121.24214,678.74918 L 120.77339,676.71793 L 124.36715,676.09292 L 124.36715,674.84292 L 122.17964,674.21791 L 123.11715,671.87415 L 125.30466,668.12414 L 125.30466,666.40538 L 125.46091,665.62412 L 129.67968,663.43661 L 130.61718,664.68662 L 133.27345,664.68662 L 132.02344,662.18661 L 128.42967,661.87411 L 123.5859,664.53037 L 121.24214,667.81163 L 119.52338,670.31165 L 118.42963,672.49916 L 114.36711,673.90541 L 111.39834,676.40542 L 111.08584,677.96793 L 113.27335,678.90544 L 114.05461,680.93669 L 111.39834,684.06171 L 105.14832,688.12423 L 97.648277,692.18675 L 95.617017,693.2805 L 90.460745,694.37426 L 85.304465,696.56177 L 87.023225,697.81177 L 85.616965,699.21803 L 85.148215,700.31178 L 82.491955,699.37428 L 79.366945,699.53053 L 78.585685,701.71804 L 77.648185,701.71804 L 77.960685,699.37428 L 74.523165,700.62429 L 71.710655,701.56179 L 68.42939,700.31178 L 65.616877,702.18679 L 62.491863,702.18679 L 60.460603,703.4368 L 58.898096,704.21805 L 56.866837,703.90555 L 54.366825,702.8118 L 52.179315,703.4368 L 51.241811,704.3743 L 49.679303,703.28055 L 49.679303,701.40554 L 52.648067,700.15553 L 58.741845,700.78054 L 62.960615,699.21803 L 64.991874,697.18677 L 67.804387,696.56177 L 69.523145,695.78051 L 72.179408,695.93676 L 73.741915,697.18677 L 74.679415,696.87427 L 76.866925,694.21801 L 79.835695,693.2805 L 83.116955,692.6555 L 84.366965,692.343 L 84.991965,692.81175 L 85.773225,692.81175 L 87.023225,689.21798 L 90.929495,687.81173 L 92.804505,684.21796 L 94.992017,679.84294 L 96.554527,678.43668 L 96.867027,675.93667 L 95.304517,677.18668 L 92.023245,677.81168 L 91.398245,675.46792 L 90.148245,675.15542 L 89.210735,676.09292 L 89.054485,678.90544 L 87.648225,678.74918 L 86.241975,673.12416 L 84.991965,674.37416 L 83.898215,673.90541 L 83.585715,672.0304 L 79.679445,672.18665 L 77.648185,673.28041 L 75.148175,672.96791 L 76.554425,671.56165 L 77.023175,669.06164 L 76.398175,667.18663 L 77.804435,666.24913 L 79.054435,666.09288 L 78.429435,664.37412 L 78.429435,660.15535 L 77.491935,659.21784 L 76.710675,660.6241 L 70.773151,660.6241 L 69.366895,659.37409 L 68.741892,655.62408 L 66.710632,652.18656 L 66.710632,651.24906 L 68.741892,650.4678 L 68.898142,648.43654 L 69.991897,647.34279 L 69.210644,646.87404 L 67.960638,647.34279 L 66.866883,644.68653 L 67.804387,639.84275 L 72.179408,636.71774 L 74.679415,635.15523 L 76.554425,631.56147 L 79.210695,630.31146 L 81.710705,631.40522 L 82.023205,633.74898 L 84.366965,633.43647 L 87.491975,631.09271 L 89.054485,631.71772 L 89.991985,632.34272 L 91.554495,632.34272 L 93.742007,631.09271 L 94.523267,626.87394 C 94.523267,626.87394 94.835767,624.06143 95.460767,623.59268 C 96.085767,623.12393 96.398267,622.65518 96.398267,622.65518 L 95.304517,620.78017 L 92.804505,621.56142 L 89.679485,622.34267 L 87.804475,621.87392 L 84.366965,620.15516 L 79.523195,619.99891 L 76.085675,616.40515 L 76.554425,612.65513 L 77.179435,610.31137 L 75.148175,608.59261 L 73.273163,604.99884 L 73.741915,604.21759 L 80.304445,603.74884 L 82.335705,603.74884 L 83.273205,604.68634 L 83.898215,604.68634 L 83.741965,603.12383 L 87.491975,602.49883 L 89.991985,602.81133 L 91.398245,603.90509 L 89.991985,605.93635 L 89.523235,607.3426 L 92.179505,608.90511 L 97.023277,610.62387 L 98.742037,609.68637 L 96.554527,605.4676 L 95.617017,602.34258 L 96.554527,601.56133 L 93.273257,599.68632 L 92.804505,598.59256 L 93.273257,597.03006 L 92.492005,593.28004 L 89.679485,588.74877 L 87.335725,584.68625 L 90.148245,582.81124 L 93.273257,582.81124 L 94.992017,583.43624 L 99.054537,583.27999 L 102.6483,579.84248 L 103.74206,576.87371 L 107.33583,574.52995 L 108.89833,575.46746 L 111.55459,574.84245 L 115.14836,572.81119 L 116.24212,572.65494 L 117.17962,573.4362 L 121.55464,573.27995 L 124.2109,570.31118 L 125.30466,570.31118 L 128.74217,572.65494 L 130.61718,574.6862 L 130.14843,575.77996 L 130.77343,576.87371 L 132.33594,575.31121 L 136.08596,575.62371 L 136.39846,579.21747 L 138.27347,580.62373 L 145.1485,581.24873 L 151.24228,585.31125 L 152.64853,584.37375 L 157.64856,586.87376 L 159.67982,586.24876 L 161.55483,585.4675 L 166.24235,587.34251 L 170.46112,590.15502 z M 59.210598,618.1239 L 61.241857,623.28018 L 61.085606,624.21768 L 58.273093,623.90518 L 56.554335,619.99891 L 54.835577,618.59266 L 52.491816,618.59266 L 52.335566,616.09264 L 54.054324,613.74888 L 55.148079,616.09264 L 56.554335,617.4989 L 59.210598,618.1239 z M 56.710586,650.4678 L 60.304353,651.24906 L 63.898119,652.18656 L 64.679373,653.12407 L 63.116866,656.71783 L 60.148102,656.56158 L 56.866837,653.12407 L 56.710586,650.4678 z M 36.710493,636.87399 L 37.804249,639.374 L 38.898004,640.93651 L 37.804249,641.71776 L 35.772989,638.749 L 35.772989,636.87399 L 36.710493,636.87399 z M 23.429182,707.49932 L 26.710447,705.31181 L 29.991712,704.3743 L 32.491724,704.6868 L 32.960476,706.24931 L 34.835485,706.71806 L 36.710493,704.84306 L 36.397992,703.28055 L 39.054254,702.65555 L 41.866767,705.15556 L 40.773012,706.87431 L 36.554243,707.96807 L 33.89798,707.49932 L 30.304214,706.40556 L 26.085444,707.81182 L 24.522937,708.12432 L 23.429182,707.49932 z M 70.773151,703.1243 L 72.335658,704.99931 L 74.366915,703.4368 L 72.960661,702.18679 L 70.773151,703.1243 z M 73.585664,706.09306 L 74.679415,703.90555 L 76.710675,704.21805 L 75.929425,706.09306 L 73.585664,706.09306 z M 96.398267,704.21805 L 97.804527,705.93681 L 98.742037,704.84306 L 97.960777,702.96805 L 96.398267,704.21805 z M 104.83581,692.18675 L 105.92957,697.81177 L 108.74208,698.59303 L 113.58585,695.78051 L 117.80462,693.2805 L 116.24212,690.93674 L 116.71087,688.59298 L 114.67961,689.84299 L 111.8671,689.06173 L 113.4296,687.96798 L 115.30461,688.74923 L 119.05463,687.03047 L 119.52338,685.62422 L 117.17962,684.84296 L 117.96087,682.96795 L 115.30461,684.84296 L 110.77334,688.28048 L 106.08582,691.09299 L 104.83581,692.18675 z M 145.7735,672.96791 L 148.11726,671.56165 L 147.17976,669.84289 L 145.461,670.7804 L 145.7735,672.96791 z"
id="AK"
style="fill:#f2d0ff" onmousemove=' GetTrueCoords(evt); ShowTooltip(evt, true)' onmouseout='ShowTooltip(evt, false)' >
<title>this sis ak</title>
</path>
It's a little bit unclear how you intend to retrieve and store that data into a single VBA string, but if you are going to try to copy and paste the contents of the text you posted and have available in-memory as a string in VBA, here's how you might approach it.
The biggest thing to remember is to escape your double quotes and line-breaks. I replaced all " with " & chr(34) & " and added a vbCrLf to the end of the line. The first few lines of your file might look like this when consumed in VBA:
Public Sub TestString()
Dim str As String
str = ""
str = str & "<svg  " & vbCrLf
str = str & "   xmlns:dc=" & Chr(34) & "http://purl.org/dc/elements/1.1/" & Chr(34) & " " & vbCrLf
str = str & "   xmlns:cc=" & Chr(34) & "http://creativecommons.org/ns#" & Chr(34) & " " & vbCrLf
str = str & "   xmlns:rdf=" & Chr(34) & "http://www.w3.org/1999/02/22-rdf-syntax-ns#" & Chr(34) & " " & vbCrLf
str = str & "   xmlns:svg=" & Chr(34) & "http://www.w3.org/2000/svg" & Chr(34) & " " & vbCrLf
str = str & "   xmlns=" & Chr(34) & "http://www.w3.org/2000/svg" & Chr(34) & " " & vbCrLf
str = str & "   xmlns:sodipodi=" & Chr(34) & "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" & Chr(34) & " " & vbCrLf
str = str & "   xmlns:inkscape=" & Chr(34) & "http://www.inkscape.org/namespaces/inkscape" & Chr(34) & " " & vbCrLf
str = str & "   version=" & Chr(34) & "1.0" & Chr(34) & " " & vbCrLf
str = str & "   width=" & Chr(34) & "958.69" & Chr(34) & " " & vbCrLf
str = str & "   height=" & Chr(34) & "592.78998" & Chr(34) & " " & vbCrLf
str = str & "   id=" & Chr(34) & "svg2275" & Chr(34) & " " & vbCrLf
str = str & "   sodipodi:version=" & Chr(34) & "0.32" & Chr(34) & " " & vbCrLf
Debug.Print str
End Sub
To make it easier to generate those lines of str = str ... code, I pasted your code into Excel and used the following Excel formula which allowed me to simply paste the resulting Excel-calculated text right into the VBA editor:
="str = str & " & CHAR(34) & SUBSTITUTE(A1,CHAR(34),CHAR(34) & " & chr(34) & " & CHAR(34)) & CHAR(34) & " & vbCrLf"
I tried pasting everything you had into VBA, but some of the lines of your original text were way too long (the lines with numbers) and took up multiple rows in the VBA editor. That can be fixed fairly simply by breaking up those lines into multiple str = str & ... lines, except without the vbCrLf at the end.
Another way of doing it is to replace characters.
Just for simplification, supose you must store one string containing this:
height="595.63739"
... then, you could substitute the double quotes by an alternate character, ending with someghing like this:
height=#595.63739#
... and the code for the whole thing:
str = "height=#595.63739#"
str = Replace(str, "#", Chr(34))
There, your string is easier to manage, cause it doesn't need the extra concatenations.
Cons:
You may end messing with a wrong char
alternative - in the exemple, supose
you have, actually, some "#" in your
string.
I'm not sure about
performance issues.