12 posts in this topic
I had a need, and so I developed.
Before I did that though, I did a quick search of the forum, and found a few things, but none seemed to suit what I really wanted ... though to be honest, I did not investigate them deeply or search extensively. In any case, I am not very good at modifying the code of others, nor do I enjoy doing so, so in the end I decided it was best to start from scratch ... re-inventing the wheel perhaps, but a wheel I feel a certain degree of comfort with. I also thought about Maps, but don't know enough.
_IniString Functions (was Ini_InMem)
Ini in memory
Settings INI - Read/Write once to the disk
INI File Processing Functions
... sure to be others.
As with all my stuff, feel free to use (no guarantees) or modify ... just give me credit where due.
I always go for the quick & simple approach, as those who know me here, are well aware, so without a doubt, my code could be improved - sped up, RegExp used, etc. So feel free to do that, and convert into a proper UDF, if you want, following best practices etc, as I am sure others will appreciate it.
Recently, I have come upon a need to extract data from an approximately 50 Mb downloaded Index file, just extracting the few elements I need, and storing them in an INI file. It is quite a time consuming process, especially on my underpowered Netbook, which is where I am using the program I built. I have been considering ways to speed up things. Two good sounding methods, out of several possibles, have come to mind - 1) RAM Disk and 2) Virtual INI processing. That last being a better option, when sharing code (program) with others.
Another method, which I am currently using, that did give me some measurable benefit, was to download the almost 50 Mb Index file in Stages (i.e. 30 x 1.4 Mb roughly), extracting data from each in turn. I have also considered extracting to 10 (or 11) separate INI files, rather than the single large INI file (4~5 Mb), as things noticeably slow up as the INI file increases in size ... obviously due to writing time.
I can't really speed up the extraction process, but that last method may speed up the writing stage. However, it would require significant program changes, and perhaps not gain me much benefit. To complicate things, there are too many Section names (Index ID's) for the IniReadSectionNames command, so I have had to split them off into their own (read/write) line-by-line index file, and create code to deal with duplicates. When read, Index ID's and Titles populate a Listbox control in a user GUI.
So at this point in time, it seems best to use the Virtual INI approach to gain a significant reduction in time taken. For my own specific use, with my slow Netbook, I may also use a RAM Disk.
Due to the aforementioned INI issues, and lack of available specific data, probably because it is always program concentric, I have created an ASCII Checker program, which I guess you can say, is AutoIt concentric. Because others may also find it handy, I am providing it here. NOTE - As yet, I am only aware that Escape characters exist, but have not investigated or catered for them in any way.
The Virtual_INI_UDF is still a work in progress, though I have done most of the functions now, with the working but incomplete _Ini_Test function, still requiring changes etc from the information gleaned by the ASCII Checker program.
Here's something to play with meanwhile.
Updated files (24th February 2017)
Example.au3 (23rd February 2017)
All pretty basic, but managed to load my 4 Mb INI file (seemingly ok, but took a few seconds) ... though I have only worked with much smaller testing ones so far.
P.S. While I have done a fair amount of testing, it has been pretty basic, and mostly limited to the examples provided. Testing has definitely not been extensive.
Bitmap2AscII use Lucida Console font with a size set to 8, so Windows 8/8.1 users need to change their notepad font and size for get a correct display.
Image Rescale slider is only available when saving as image.
A click on the "PreviewEdit" open AscII string in Notepad.
You can save as Text, Html or Image (add the extension you want)
Each setting change is immediately applied.
Downloads available in the download section
Hope you like it !
Convert Images to AscII Art.
I do not like Charmap, it's too small and you can't test a character with another font, you only get all chars for each font so it's not very handy.
SpecialCharactersViewer permit with the Segoe UI Symbol font to display a maximum ( not all! ) of Ascii and Unicode characters.
Simple click on a char and the corresponding Chr or ChrW code is displayed.
Free to you to choose another font for see if the selected character can be used with.
Windows XP do not have Segoe UI Symbol font, so it's more for Win7/Win8 users...
Previous downloads : 100
Source : SpecialCharactersViewer v126.96.36.199.au3
Executable : SpecialCharactersViewer.exe.html
(Once this html file downloaded, double click on it for start the download)
Will be added to the next version of SciTE Hopper.
Hope it can help !
Hi. I am trying whole day yesterday and today to make script work. Code shouldnt be a problem but I just dont understand how some characters work. I will try to explain. I have a bunch of chars that I picked up from http://fsymbols.com/emoji/ and if you paste them in facebook page they work fine. But if you paste more then 20 or 40 (I am not sure anymore) they will not show well. Same thing happens in a script. When I had less then 20 everything worked fine. Now when I put much more it wont work. For example if code is "ΓÿÇ" then I need to get " ☀" when it goes trough code and that worked fine. When I put much more in a script it just wouldnt work. Same happens on facebook page. I have just checked it shows first 40 and then it wont decode others. Same happens in script. I even changed a bit way it works and instead that code is inside script i have put it in a .txt file so it will just load a line i need trough scrip (to make it work somehow) but it just doesnt work. Can anyone solve this ghost inside a script?
#include <WindowsConstants.au3> #include <GUIConstantsEx.au3> $hGUI = GUICreate("v3.00", 752, 418, -1, -1) ;GUICtrlSetStyle(-1, ) GUICtrlSetFont(-1, 8.5, 400, 0, "MS Shell Dlg", 5) $oIE = ObjCreate("Shell.Explorer.2") ;GUICtrlSetStyle(-1, ) $hPic = GUICtrlCreatePic("", 13, 33, 16, 16) GUICtrlSetImage(-1, "E:\0\autoit\2014-03-31 Facebook Spec Chars\img\01.bmp") $hPic2 = GUICtrlCreatePic("", 13, 51, 16, 16) GUICtrlSetImage(-1, "E:\0\autoit\2014-03-31 Facebook Spec Chars\img\02.bmp") $hButton = GUICtrlCreateButton("#", 37, 33, 16, 16) $hButton2 = GUICtrlCreateButton("#", 37, 51, 16, 16) $hButton3 = GUICtrlCreateButton("#", 37, 69, 16, 16) $hButton4 = GUICtrlCreateButton("#", 37, 87, 16, 16) $hButton5 = GUICtrlCreateButton("#", 37, 105, 16, 16) $hButton6 = GUICtrlCreateButton("#", 37, 123, 16, 16) $hButton7 = GUICtrlCreateButton("#", 37, 141, 16, 16) GUISetState() While 1 $hMsg = GUIGetMsg() Switch $hMsg Case $GUI_EVENT_CLOSE Exit EndSwitch Select Case $hMsg = $hButton ClipPut("ðŸ") ; those are chars that needs to be inserted in a facebook Case $hMsg = $hButton2 ClipPut("â˜") ; here also Case $hMsg = $hButton3 ClipPut("â˜”") Case $hMsg = $hButton4 ClipPut("â›„") Case $hMsg = $hButton5 ClipPut("âš¡") Case $hMsg = $hButton7 ClipPut("") EndSelect WEnd At the end I need to get "