Хорошо, поэтому вопрос трудно сформулировать. Я несколько раз искал это в googled, но обычно оказывается, что я не искал правильные фразы, и ответ легко доступен. Я работаю медицинским биллером для офиса врачей, и я должен включать диагностические коды для посещения офиса. В программе «Электронная медицинская запись» есть список диагнозов. Первая строка - описание врачей, меня это не волнует. Вторая строка - это код ICD-9. Те старые, мне тоже все равно. Третья строка (каждая третья строка) содержит код ICD-10. Это то что мне нужно. То, что я хотел бы сделать, это захватить весь список, выгрузить его в массив, ограниченный новыми строками, и избавиться от каждого элемента, который не содержит определенную строку. Затем выгрузите все сохраненные элементы в другой массив (или тот же, но не разделенный на 3, как они были бы после удаления) и удалите эту префиксную строку, на которой я сохранил элементы на основе. После этого мне нужно щелкнуть по определенному месту (я знаю, как это сделать), добавить ровно четыре элемента массивов в виде текста (не могу понять это), нажать enter и продолжать добавлять и нажимать, пока я не ввел весь массив. Я опубликую то, что я пробовал, булыжник из поисковых запросов Google, если кто-то хочет увидеть этот беспорядок. Но также будет оценено общее объяснение того, как это сделать. Благодарю.AHK: Копирование блока текста в массив, изменение и перенос на другой массив
первую очередь, материал я бы копируя будет выглядеть следующим образом (фактический пример)
Поясничный стеноз - Первичный
ICD-9-CM: 724,02
МКБ 10-СМ: M48.06
Спондилолистез из поясничной области
МКБ-9-CM: 738,4
МКБ-10-СМ: M43.16
Поясничных дегенеративное заболевание диск
МКБ-9-КМ: 722,52
МКБ-10-СМ: M51.36
Хронические двусторонняя боль в нижней части спины с двусторонним радикулита
МКБ-9-КМ: 724,2, 724,3, 338,29
ICD-10-CM: M54.42, M54.41, G89.29
Естественно, список будет намного длиннее. Строка, которую я хотел бы сохранить в строках, была бы «ICD-10-CM:», просто так вы, ребята, знаете. Я попытался использовать его в качестве разделителя в кавычках, но получил некоторые действительно довольно странные результаты. Было бы легче решить эту проблему, если бы это работало как разделитель.
Arrays:={}
RealArray:={}
^j::
sendinput, ^c
sleep 20
bigone:=ClipBoard
sleep 2000
;StringReplace, bigone, newbigone, `n, "DLMTR", All
;Arrays:= StrSplit(newbigone, "DLMTR")
StringSplit, Arrays, bigone, `n
k=4
j=1
loop
{
if (k<Arrays.Max_Index)
{
RealArray%j%=Arrays%k%
j++
k++
k++
k++
}
else
return
}
return
^L::
a=0
loop
{
if (a<RealArray.Max_Index)
{
send RealArray%a%
a++
sendinput, {Space}
if(mod(a,5)==0)
sendinput, {enter}
}
else
return
}
Это выглядит совершенно потрясающе. Я собираюсь сделать этот выстрел через несколько минут здесь, потратил слишком много времени этим утром на это, надо немного догнать. Огромное спасибо. Я также очень признателен, что вы используете мои имена переменных. Мне становится легче понять. Благодаря тонну! Только что сделал снимок, он отлично работает! Я расскажу позже, чтобы понять это. Не могли бы вы показать мне, как удалить часть «ICD-10-CM:» каждой строки? Я не могу обернуть голову вокруг циклов в AHK, поэтому используется для C++. – DarknessCalling
Я комментирую код строки за строкой, и я понимаю большую часть (кроме тех вещей, где я не могу изменить его, чтобы он делал то, что я хочу), но у меня возникли проблемы с пониманием , если InStr (A_LoopField, «ICD-10») ICD-10 появится несколько раз, как это сделать, но не вернуть 1 (как в true)? – DarknessCalling
Игнорируйте вторую половину моего первого комментария. Я понял, почему. Я идиот. Нужен дополнительный набор скобок для if, если я добавлю второй оператор. Базовый материал xD – DarknessCalling