Thank you, I understand.
I will put my stuff to the inventor without caling an extern java script. I think that will be a little bit slow... I hope it will be working.
Procedure sorting a list in ten screens
means ten times the same procedure in ten screens.
like sorting a list
Hi,
I never used an extension before and I am a little bit afraid of loosing control. What I was looking for was:
Fill List
Sort List ( MIT or Java )
Work with sorted List
(( execute and wait sort List ))
The merge sort procedure and the bubble sort procedure are doing a nice joh but both of them got if statements in the deepest loop.
The textcompare statement is using the ascii order but I need the German norm order (ä less than b) so I have to write my own textcompare function and put it into the sort algorithmus
Do you have a sorted alphabet string with all the letters in order, including caps?
My Google searches for German norm order are returning undesired results.
This could be used in a replacement procedure for the compare text block in the merge sort.
The fact that the compare happens in the innermost loop is inevitable, but not so bad considering that the compare happens n*log(n) times, the theoretical minimum.
Hi,
If you want to sort the german norm you need to change minimum seven letters: ä=a, ö=o, ü=u, ß=ss, Ä=A, Ö=O, Ü=U. There are many more letters (French etc) but I think I will need them not yet
.
txt = join listStart
replace ä to a, ö to o etc in txt
NormList = Split txt
Sort NormList
If there is a need to swap Item, I swap them in both lists.
I never worked with a dictionary before but it seems to be very useful.
You are changing the items to German Norm every time you use them, many times the same work?
Is there a way to translate the whole list to German Norm and after that to work with only one list? Perhaps a kind of tag that can remember the original position in the source list?
By the way:
I would like to have the "real" textcompare not binarycompare because I have more steps.
Text1 → lower →German Norm → TextA
Text2 → lower →German Norm → TextB
compare TextA / TextB
The dictionary will be smaller because I do not need Ä Ö Ü any longer.
This is typically done by turning the list into a table, adding an extra column pre-populated with a sort key pre-calculated to include the original sort key transformed with norming and downcasing. I have seen this done in database tables.
If you go that route and want to apply a merge sort to the table, have the comparison function select the new sort key column to decide which row precedes the other row.
After the table is sorted, select your original data column for display purposes or .Elements
In the end hopes and wishes for basic text blocks and more::
I know the substitude solutions, but I think this "must" be basic...
LTrim (Space)
LTrim (Letter)
RTrim (Space)
RTrim (Letter)
ASC (Letter)
CHR (digit)
(
the optic of CHR(32) Space, is just the same as CHR(160) HardSpace ))
Example:
Variabe = " "
Space or not... ? CHR(32) is more clearly
)
Rights (Text, Len)
--
Global Variables and global Procedures should be global and not restricted to one screen
The answer "under construction" is the best answer...
In fact, the screens are treated as separate applications. Since the screen is an application, the global variable is within one screen. I have long stopped using screens, there are only problems with them. Use Arrangement.
Hi,
please remember I'm new to MIT so I don't understand the discussion of using more than one screen. Are screens structure elements or not? If we are working with arrangsments we need to write our own screen manager, visible on / off etc. ?
Another thing:
In the block editor are at the left down corner two symbols (show warnings, show errors) but there is no button for find / find next / go to. My browser (firefox) can't search text in pictures (blocks are pics?).
As for looking for errors, click the arrows above and below the error.
MitAi2 is a free website mainly for learning and simple applications. Don't expect miracles from her. If you want something better, learn Java and create in Android Studio. Otherwise, you have to get used to the limitations of AI2 and know how to handle them.
As for the operations on the texts that you presented above, I will take a look at it and introduce it to my extension as part of learning to write extensions.
ASC (Letter)
CHR (digit)
These functions are provided by my extension. You can convert UTF8 encoded character arrays in it.
For example, the string "hello" will convert to "68656C6C6F" and vice versa. Characters outside the ASCII range, e.g. the pound symbol as "C2A3".
There is a "Trim" function in blocks that removes spaces from both sides. "Rights (Text, Len)" is in blocks "Segment text, start, length".